texlive[42143] Build/source/texk/gregorio: gregorio 4.2.0

commits+kakuto at tug.org commits+kakuto at tug.org
Sun Sep 25 08:05:31 CEST 2016


Revision: 42143
          http://tug.org/svn/texlive?view=revision&revision=42143
Author:   kakuto
Date:     2016-09-25 08:05:30 +0200 (Sun, 25 Sep 2016)
Log Message:
-----------
gregorio 4.2.0

Modified Paths:
--------------
    trunk/Build/source/texk/gregorio/ChangeLog
    trunk/Build/source/texk/gregorio/Makefile.am
    trunk/Build/source/texk/gregorio/Makefile.in
    trunk/Build/source/texk/gregorio/configure
    trunk/Build/source/texk/gregorio/configure.ac
    trunk/Build/source/texk/gregorio/gregorio-PATCHES/ChangeLog
    trunk/Build/source/texk/gregorio/gregorio-PATCHES/TL-Changes
    trunk/Build/source/texk/gregorio/gregorio-src/.gregorio-version
    trunk/Build/source/texk/gregorio/gregorio-src/CHANGELOG.md
    trunk/Build/source/texk/gregorio/gregorio-src/COPYING.md
    trunk/Build/source/texk/gregorio/gregorio-src/Makefile.am
    trunk/Build/source/texk/gregorio/gregorio-src/README.md
    trunk/Build/source/texk/gregorio/gregorio-src/UPGRADE.md
    trunk/Build/source/texk/gregorio/gregorio-src/VersionManager.py
    trunk/Build/source/texk/gregorio/gregorio-src/build.sh
    trunk/Build/source/texk/gregorio/gregorio-src/configure.ac
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/gregorio-scribus.lua
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat
    trunk/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command
    trunk/Build/source/texk/gregorio/gregorio-src/doc/Appendix_Font_Tables.tex
    trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_User.tex
    trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_gregorio.tex
    trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_internal.tex
    trunk/Build/source/texk/gregorio/gregorio-src/doc/Gabc.tex
    trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.pdf
    trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.tex
    trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.lua
    trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.pdf
    trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.tex
    trunk/Build/source/texk/gregorio/gregorio-src/doc/Makefile.am
    trunk/Build/source/texk/gregorio/gregorio-src/examples/Makefile.am
    trunk/Build/source/texk/gregorio/gregorio-src/install-gtex.sh
    trunk/Build/source/texk/gregorio/gregorio-src/src/Makefile.am
    trunk/Build/source/texk/gregorio/gregorio-src/src/characters.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/characters.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/dump/dump.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/enum_generator.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-elements-determination.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-glyphs-determination.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination-l.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination.l
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.l
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.y
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-write.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/gregorio-utils.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-position.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/messages.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/messages.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/plugins.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/struct.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/struct.h
    trunk/Build/source/texk/gregorio/gregorio-src/src/unicode.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/unicode.h
    trunk/Build/source/texk/gregorio/gregorio-src/windows/gregorio-resources.rc
    trunk/Build/source/texk/gregorio/gregorio.test
    trunk/Build/source/texk/gregorio/version.ac

Added Paths:
-----------
    trunk/Build/source/texk/gregorio/gregorio-src/doc/README.md
    trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.c
    trunk/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h

Removed Paths:
-------------
    trunk/Build/source/texk/gregorio/gregorio-PATCHES/patch-04-alignof

Modified: trunk/Build/source/texk/gregorio/ChangeLog
===================================================================
--- trunk/Build/source/texk/gregorio/ChangeLog	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/ChangeLog	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,3 +1,16 @@
+2016-09-25  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import gregorio-4.2.0.
+	* version.ac, configure.ac: Adapted.
+	* gregorio.test: Change program name by
+	gregorio=gregorio-$FILENAME_VERSION.
+
+2016-08-23  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import gregorio-4.2.0-rc3.
+	* version.ac, configure.ac: Adapted.
+	* Makefile.am: bin_PROGRAMS = gregorio-$(FILENAME_VERSION).
+
 2016-07-15  Karl Berry  <karl at tug.org>
 
 	* configure.ac (AC_CHECK_ALIGNOF): add.

Modified: trunk/Build/source/texk/gregorio/Makefile.am
===================================================================
--- trunk/Build/source/texk/gregorio/Makefile.am	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/Makefile.am	2016-09-25 06:05:30 UTC (rev 42143)
@@ -20,7 +20,7 @@
 	$(KPATHSEA_INCLUDES) -D_GNU_SOURCE -DUSE_KPSE
 AM_CFLAGS = $(WARNING_CFLAGS)
 
-bin_PROGRAMS = gregorio
+bin_PROGRAMS = gregorio-$(FILENAME_VERSION)
 
 gregorio_SOURCES = \
 	@GREGORIO_TREE@/src/characters.c \
@@ -34,6 +34,7 @@
 	@GREGORIO_TREE@/src/gabc/gabc-elements-determination.c \
 	@GREGORIO_TREE@/src/gabc/gabc-glyphs-determination.c \
 	@GREGORIO_TREE@/src/gabc/gabc-notes-determination-l.c \
+	@GREGORIO_TREE@/src/gabc/gabc-score-determination.c \
 	@GREGORIO_TREE@/src/gabc/gabc-score-determination-l.c \
 	@GREGORIO_TREE@/src/gabc/gabc-score-determination-y.c \
 	@GREGORIO_TREE@/src/gabc/gabc-write.c \
@@ -57,4 +58,3 @@
 gregorio.log: gregorio$(EXEEXT)
 EXTRA_DIST += $(TESTS)
 DISTCLEANFILES = factus.gtex veni.gtex
-

Modified: trunk/Build/source/texk/gregorio/Makefile.in
===================================================================
--- trunk/Build/source/texk/gregorio/Makefile.in	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/Makefile.in	2016-09-25 06:05:30 UTC (rev 42143)
@@ -88,7 +88,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-bin_PROGRAMS = gregorio$(EXEEXT)
+bin_PROGRAMS = gregorio-$(FILENAME_VERSION)$(EXEEXT)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \
@@ -124,6 +124,7 @@
 	@GREGORIO_TREE@/src/gabc/gabc-elements-determination.$(OBJEXT) \
 	@GREGORIO_TREE@/src/gabc/gabc-glyphs-determination.$(OBJEXT) \
 	@GREGORIO_TREE@/src/gabc/gabc-notes-determination-l.$(OBJEXT) \
+	@GREGORIO_TREE@/src/gabc/gabc-score-determination.$(OBJEXT) \
 	@GREGORIO_TREE@/src/gabc/gabc-score-determination-l.$(OBJEXT) \
 	@GREGORIO_TREE@/src/gabc/gabc-score-determination-y.$(OBJEXT) \
 	@GREGORIO_TREE@/src/gabc/gabc-write.$(OBJEXT) \
@@ -588,6 +589,7 @@
 	@GREGORIO_TREE@/src/gabc/gabc-elements-determination.c \
 	@GREGORIO_TREE@/src/gabc/gabc-glyphs-determination.c \
 	@GREGORIO_TREE@/src/gabc/gabc-notes-determination-l.c \
+	@GREGORIO_TREE@/src/gabc/gabc-score-determination.c \
 	@GREGORIO_TREE@/src/gabc/gabc-score-determination-l.c \
 	@GREGORIO_TREE@/src/gabc/gabc-score-determination-y.c \
 	@GREGORIO_TREE@/src/gabc/gabc-write.c \
@@ -755,6 +757,9 @@
 @GREGORIO_TREE@/src/gabc/gabc-notes-determination-l.$(OBJEXT):  \
 	@GREGORIO_TREE@/src/gabc/$(am__dirstamp) \
 	@GREGORIO_TREE@/src/gabc/$(DEPDIR)/$(am__dirstamp)
+ at GREGORIO_TREE@/src/gabc/gabc-score-determination.$(OBJEXT):  \
+	@GREGORIO_TREE@/src/gabc/$(am__dirstamp) \
+	@GREGORIO_TREE@/src/gabc/$(DEPDIR)/$(am__dirstamp)
 @GREGORIO_TREE@/src/gabc/gabc-score-determination-l.$(OBJEXT):  \
 	@GREGORIO_TREE@/src/gabc/$(am__dirstamp) \
 	@GREGORIO_TREE@/src/gabc/$(DEPDIR)/$(am__dirstamp)
@@ -818,6 +823,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-elements-determination.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-glyphs-determination.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-notes-determination-l.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-score-determination.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-score-determination-l.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-score-determination-y.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@GREGORIO_TREE@/src/gabc/$(DEPDIR)/gabc-write.Po at am__quote@

Modified: trunk/Build/source/texk/gregorio/configure
===================================================================
--- trunk/Build/source/texk/gregorio/configure	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/configure	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Gregorio (TeX Live) 4.1.4.
+# Generated by GNU Autoconf 2.69 for Gregorio (TeX Live) 4.2.0.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='Gregorio (TeX Live)'
 PACKAGE_TARNAME='gregorio--tex-live-'
-PACKAGE_VERSION='4.1.4'
-PACKAGE_STRING='Gregorio (TeX Live) 4.1.4'
+PACKAGE_VERSION='4.2.0'
+PACKAGE_STRING='Gregorio (TeX Live) 4.2.0'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL='http://gregorio-project.github.io/'
 
@@ -1331,7 +1331,7 @@
   # 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 Gregorio (TeX Live) 4.1.4 to adapt to many kinds of systems.
+\`configure' configures Gregorio (TeX Live) 4.2.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1402,7 +1402,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Gregorio (TeX Live) 4.1.4:";;
+     short | recursive ) echo "Configuration of Gregorio (TeX Live) 4.2.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1522,7 +1522,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Gregorio (TeX Live) configure 4.1.4
+Gregorio (TeX Live) configure 4.2.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2361,7 +2361,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Gregorio (TeX Live) $as_me 4.1.4, which was
+It was created by Gregorio (TeX Live) $as_me 4.2.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2710,7 +2710,7 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-FILENAME_VERSION="4_1_4"
+FILENAME_VERSION="4_2_0"
 
 
 cat >>confdefs.h <<_ACEOF
@@ -8054,7 +8054,7 @@
 
 # Define the identity of the package.
  PACKAGE='gregorio--tex-live-'
- VERSION='4.1.4'
+ VERSION='4.2.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14474,7 +14474,7 @@
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-Gregorio (TeX Live) config.lt 4.1.4
+Gregorio (TeX Live) config.lt 4.2.0
 configured by $0, generated by GNU Autoconf 2.69.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -16061,7 +16061,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Gregorio (TeX Live) $as_me 4.1.4, which was
+This file was extended by Gregorio (TeX Live) $as_me 4.2.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16128,7 +16128,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Gregorio (TeX Live) config.status 4.1.4
+Gregorio (TeX Live) config.status 4.2.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/texk/gregorio/configure.ac
===================================================================
--- trunk/Build/source/texk/gregorio/configure.ac	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/configure.ac	2016-09-25 06:05:30 UTC (rev 42143)
@@ -9,7 +9,7 @@
 dnl
 m4_include([version.ac])[] dnl define gregorio_version
 AC_INIT([Gregorio (TeX Live)], gregorio_version, [tex-k at tug.org], [gregorio--tex-live-], [http://gregorio-project.github.io/])
-FILENAME_VERSION="4_1_4"
+FILENAME_VERSION="4_2_0"
 AC_SUBST(FILENAME_VERSION)
 AC_DEFINE_UNQUOTED(FILENAME_VERSION, "$FILENAME_VERSION", [version suitable for file names])
 AC_PREREQ([2.65])

Modified: trunk/Build/source/texk/gregorio/gregorio-PATCHES/ChangeLog
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-PATCHES/ChangeLog	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-PATCHES/ChangeLog	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,3 +1,12 @@
+2016-09-25  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import gregorio-4.2.0.
+
+2016-08-23  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import gregorio-4.2.0-rc3.
+	* patch-04-alignof: remove since included upstream.
+
 2016-07-15  Karl Berry  <karl at tug.org>
 
 	* patch-04-alignof: add.

Modified: trunk/Build/source/texk/gregorio/gregorio-PATCHES/TL-Changes
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-PATCHES/TL-Changes	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-PATCHES/TL-Changes	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,5 @@
-Changes applied to the gregorio-4.1.4 tree as obtained from:
-	https://github.com/gregorio-project/gregorio/releases/tag/v4.1.4/
+Changes applied to the gregorio-4.2.0 tree as obtained from:
+	https://github.com/gregorio-project/gregorio/releases/tag/v4.2.0/
 
 Remove:
 	Makefile.in

Deleted: trunk/Build/source/texk/gregorio/gregorio-PATCHES/patch-04-alignof
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-PATCHES/patch-04-alignof	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-PATCHES/patch-04-alignof	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,42 +0,0 @@
-Index: configure.ac
-===================================================================
---- configure.ac	(revision 41690)
-+++ configure.ac	(working copy)
-@@ -97,6 +97,8 @@
- AC_CHECK_HEADERS([stdint.h])
- AC_CHECK_HEADERS([stdalign.h])
- 
-+AC_CHECK_ALIGNOF(uint32_t)
-+
- AC_C_BIGENDIAN
- 
- AC_SUBST([GREGORIO_TREE], [gregorio-src])
-Index: gregorio-src/src/sha1.c
-===================================================================
---- gregorio-src/src/sha1.c	(revision 41690)
-+++ gregorio-src/src/sha1.c	(working copy)
-@@ -37,15 +37,6 @@
- #include <stdlib.h>
- #include <string.h>
- 
--#ifdef HAVE_STDALIGN_H
--#include <stdalign.h>
--#ifdef __clang__
--#pragma clang diagnostic ignored "-Wc11-extensions"
--#endif
--#else
--#define alignof(x) sizeof(x)
--#endif
--
- #ifdef WORDS_BIGENDIAN
- #define SWAP(n) (n)
- #else
-@@ -167,7 +158,7 @@
-     if (len >= 64) {
-         /* architecture and data-specific; LCOV_EXCL_START */
- #if !_STRING_ARCH_unaligned
--#define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0)
-+#define UNALIGNED_P(p) ((uintptr_t) (p) % ALIGNOF_UINT32_T != 0)
-         if (UNALIGNED_P(buffer)) {
-             while (len > 64) {
-                 sha1_process_block(memcpy(ctx->buffer, buffer, 64), 64, ctx);

Modified: trunk/Build/source/texk/gregorio/gregorio-src/.gregorio-version
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/.gregorio-version	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/.gregorio-version	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,4 @@
-4.1.4
+4.2.0
 
 *** Do not modify this file. ***
 Use VersionManager.py to change the version.

Modified: trunk/Build/source/texk/gregorio/gregorio-src/CHANGELOG.md
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/CHANGELOG.md	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/CHANGELOG.md	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,6 +2,85 @@
 All notable changes to this project will be documented in this file.
 As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/). It follows [some conventions](http://keepachangelog.com/).
 
+## [4.2.0] - 2016-09-23
+### Fixed
+- When the note after an oriscus is at the same pitch, the oriscus will now point downwards by default (see [#1177](https://github.com/gregorio-project/gregorio/issues/1177)).
+- When the last note in a score is not in the last syllable, it no longer merges into the (no-note) syllable(s) that follow (see [#1205](https://github.com/gregorio-project/gregorio/issues/1205)).
+- A two-line initial on a two-line score no longer generates an error (see [#1139](https://github.com/gregorio-project/gregorio/issues/1139)).
+- Staff lines after a two-line initial should now be sized correctly in a more consistent way (see [#1141](https://github.com/gregorio-project/gregorio/issues/1141)).
+- Space at the end of line was not always correct when a line is cut in the middle of a word (see [#1155](https://github.com/gregorio-project/gregorio/issues/1155)).
+- In rare cases, the very last bar or glyph of a score could appear alone at the beginning of the final line (see [#1152](https://github.com/gregorio-project/gregorio/issues/1152)).
+- In cases of a syllable without note, the space between notes of the previous and next syllables was sometimes not enough (see [#1137](https://github.com/gregorio-project/gregorio/issues/1137)).
+- `moraadjustment` and `moraadjustmentbar` did not scale when changing factor, they do now.
+- The `900_gregorio.xml` file for Scribus now matches `main-lualatex.tex` again (see [#1087](https://github.com/gregorio-project/gregorio/issues/1087)).
+- Multiple subsequent lines in gabc no longer cause TeX to fail (see [#1111](https://github.com/gregorio-project/gregorio/issues/1111)).
+- Old bar spacing algorithm will no longer separate the text and bar when the bar is preceeded by a puncutm mora (see [#1078](https://github.com/gregorio-project/gregorio/issues/1078)).
+- Scores which end with a no-note syllable under the new bar spacing algorithm will no longer have their text pushed out into the right hand margin.  See [#1110](https://github.com/gregorio-project/gregorio/issues/1110).
+- PlainTeX will now respect underline requests in gabc.
+- PlainTeX will now raise a warning when small caps are requested but `\sc` has not been defined.
+- A manual custos at the end of the score will now be spaced like regular end of line custos [#1034](https://github.com/gregorio-project/gregorio/issues/1034).
+- Custos glyphs heights are now counted when adjusting line heights (see [#961](https://github.com/gregorio-project/gregorio/issues/961)).
+
+### Added
+- Some vertical spaces can now be adjusted for a particular line in a score.  Use `\grechangenextscorelinedim` prior to including the score to set the desired values.  `spaceabovelines`, `spacebeneathtext`, and `spacelinestext` may be changed with this command.  See GregorioRef and [#1156](https://github.com/gregorio-project/gregorio/issues/1156) for details.
+- Nabc now supports pitches `hn` and `hp` in addition to previously supported `ha` through `hm`.
+- 32 new St. Gall neume glyphs have been added to the `gregall` font and glyphs for nabc `po-1pp2su1sux1` and `po-1su1sux1` have been changed.
+- 31 new St. Gall neume glyphs have been added to the `gresgmodern` font and glyph for nabc `tr-1` has been changed.
+- It is now possible to set `\parskip`, `\lineskip`, `\baselineskip`, and `\lineskiplimit` to have different values within a score using `\grechangedim`.  See [#1038](https://github.com/gregorio-project/gregorio/issues/1038).
+- It is now possible to invert the oriscus orientation on pes quassus and oriscus flexus shapes.  Use `o0` or `o1` to force the oriscus into the orientation you desire.  It is also possible to fuse the oriscus from either direction in either orientation.  See [#898](https://github.com/gregorio-project/gregorio/issues/898) and [#972](https://github.com/gregorio-project/gregorio/issues/972).
+- Formerly missing torculus figures starting with an oriscus are now rendered using neume fusion (see [#1013](https://github.com/gregorio-project/gregorio/issues/1013)).
+- Gregorio will keep together (prevent line breaks between) a user-configurable number of notes (by default, 4) at the start and end of the syllable.  Further, Gregorio will prevent line breaks in a syllable with fewer than a user-configurable number of notes (by default, 10).  These values may be changed by using the `\gresetunbreakablesyllablenotes` command.  See GregorioRef for details (for the change request, see [#1044](https://github.com/gregorio-project/gregorio/issues/1044)).
+- The visibility of notes and lyrics can now be toggled on an off using `\gresetlyrics` and `\gresetnotes`.  See [#1039](https://github.com/gregorio-project/gregorio/issues/1039).
+- An alteration (flat, natural, or sharp) will now appear on a custos if the next note is so altered.  Use `\gresetcustosalteration{invisible}` if you prefer the old behavior.  See [#1049](https://github.com/gregorio-project/gregorio/issues/1049).
+- `gregoriosyms.sty` and `gregoriotex.tex` now contain definitions for `gregoriocolor` and `grebackgroundcolor` and the appropriate score commands dealing with color now work under PlainTeX
+
+### Changed
+- In order to facilitate installation alongside TeX Live, the version number is now appended to the gregorio executable file name.  If you are running the executable directly in your custom scripts, you will need to change them to include the version number.  If you are not using the TeX-Live-packaged version of Gregorio, you will probably need to use the `--shell-escape` option when compiling your `.tex` files.  Note that in TeX Live 2016, which includes Gregorio 4.1.1, the executable filename does not include the version number, though that will change starting with TeX Live 2017.  See UPGRADE.md and [#1197](https://github.com/gregorio-project/gregorio/issues/1197) for more information.
+- When the clef and the first note are at a reasonable vertical distance, `shortspaceafterlineclef` is used instead of `spaceafterlineclef` (make them equal if you don't want this feature). This is used only on the first line, when there is an initial on one line. See [#1138](https://github.com/gregorio-project/gregorio/issues/1138).
+- When an alteration follows a bar, it is not completely taken into consideration in the new bar spacing algorithm (similarly to the punctum mora), this behavior can be tuned with the newly introduced space `alterationadjustmentbar`. See [#1146](https://github.com/gregorio-project/gregorio/issues/1146).
+- Very small improvement in the design of the porrectus auctus and torculus resupinus auctus (see [#1169](https://github.com/gregorio-project/gregorio/issues/1169)).
+- When the notes around a virgula or divisio minima are lower than two spaces below the top staff line, the spaces used are new shorter spaces with a `@short` suffix. To cancel this feature, make them the same as their normal version. See [#1144](https://github.com/gregorio-project/gregorio/issues/1144).
+- Different glyphs are now used for puncta inclinata in an ascent versus in a descent.  A heuristic algorithm is used to ensure that the glyphs match when grouped together.  If the algorithm chooses the wrong shape, use `0` (for descending) or `1` (for ascending) to force an orientation.  See [UPGRADE.md](UPGRADE.md) and [#856](https://github.com/gregorio-project/gregorio/issues/856) for details.
+- The shape of the fused oriscus at ambitus one in the greciliae font has been tweaked to form a nicer connection (see [#1079](https://github.com/gregorio-project/gregorio/issues/1079)).
+- Syllables are now rewritten to improve ligature rendering.  This may be disabled by issuing `\gresetsyllablerewriting{off}`.  See GregorioRef for details (for the change request, see [#1098](https://github.com/gregorio-project/gregorio/issues/1098)).
+- Default mode style for PlainTeX no longer tries to invoke small caps since they are not defined by default.
+- Italic, bold, underlined, small capital, teletype, and colored styles now span multiple syllables.  Gregorio will also more consistently raise errors when styles are improperly started or ended.  See [UPGRADE.md](UPGRADE.md) and [#1121](https://github.com/gregorio-project/gregorio/issues/1121) for details.
+- The stemmed oriscus flexus `(gOe)` is now consistent with the unstemmed oriscus flexus `(goe)` in that the oriscus points downward at the note that follows.  If you prefer to have the oriscus point upward, use `(gO1e)` for force upward orientation.
+- Space before a custos appearing in the middle of a line is now set by `spacebeforeinlinecustos`.
+- The space between two puncta inclinata at the unison may be tuned by changing `punctuminclinatumunisonshift` (see [#1042](https://github.com/gregorio-project/gregorio/issues/1042)).
+- A podatus followed by a virga `(eghv)` will now be kept together (no line break between the shapes),  If you would like to allow a line break there, use `(eg/hv)` instead (see UPGRADE.md and [#1045](https://github.com/gregorio-project/gregorio/issues/1045)).
+- Penalties must now be changed using the `\grechangecount` command.  See GregorioRef and [UPGRADE.md](UPGRADE.md) for details (for the change request, see [#1021](https://github.com/gregorio-project/gregorio/issues/1021)).
+- `\greemergencystretch` must now be set by changing `emergencystretch` using `\grechangedim` instead of redefining the macro.
+- An isolated stropha will now be considered part of the previous neume group and line breaks will be prevented at that point.  In order to force a line break there, use a breaking space such as `/` before the stropha in gabc.  See [#1056](https://github.com/gregorio-project/gregorio/issues/1056).
+- `interwordspacetext` and it's related distances have been redefined to be smaller and dependent on a font based distance (`ex`).  They are also no longer scale with the staff size by default.  See [#1036](https://github.com/gregorio-project/gregorio/issues/1036) & [gregoriot-test#208](https://github.com/gregorio-project/gregorio-test/pull/208).
+- `\grecreatedim` and `\grechangedim` can now be used to link two distances.  To do this the second argument should be the name of the master distance and the third argument should be `inherited`.  See [#962](https://github.com/gregorio-project/gregorio/issues/962).
+
+### Removed
+- `\grescorereference`
+- `\grenewlinepenalty`
+- `\grenobreakpenalty`
+- `\greendofwordpenalty`
+- `\greendofsyllablepenalty`
+- `\greendafterbarpenalty`
+- `\greendafterbaraltpenalty`
+- `\grefinalpenalty`
+- `\greendofelementpenalty`
+- `\grehyphenpenalty`
+- `\grebrokenpenalty`
+- `\grewidowpenalty`
+- `\greclubpenalty`
+- `\grelooseness`
+- `\gretolerance`
+- `\grepretolerance`
+- `\greemergencystretch`
+
+
+## [4.1.5] - 2016-08-18
+### Fixed
+- Use node.travese_id() to find our desired nodes when doing translation centering across syllables, thereby preventing a conflict with other packages which insert nodes (such as luatex-ja).  See [#1180](https://github.com/gregorio-project/gregorio/issues/1180).
+- Explicitly communicate the rescaling of `\gre at skip@temp at four` back to TeX, thereby fixing the problem with custom spacings.  See [#1199](https://github.com/gregorio-project/gregorio/issues/1199).
+- With thanks to Claudio Beccari (@OldClaudio), adding a commentary no longer generates a bad `\hbox` during TeX processing (see [#1202](https://github.com/gregorio-project/gregorio/issues/1202)).
+
 ## [4.1.4] - 2016-05-29
 ### Fixed
 - Package conflict with luatex-ja also affected the custos.  Have now fixed that problem too.  See [this thread](http://www.mail-archive.com/gregorio-users@gna.org/msg03520.html).
@@ -115,13 +194,13 @@
 - `\grescorereference`
 
 ### Removed
-- `\GreSetStaffLinesFormat`, supplanted by `\grechangeformat{normalstafflines}...`
-- `\greinitialformat`, if you were redefining this command, use `\grechangeformat{initial}...` instead
-- `\grebiginitialformat`, if you were redefining this command, use `\grechangeformat{biginitial}...` instead
-- `\gretranslationformat`, if you were redefining this command, use `\grechangeformat{translation}...` instead
-- `\greabovelinestextstyle`, if you were redefining this command, use `\grechangeformat{abovelinestext}...` instead
-- `\grelowchoralsignstyle`, if you were redefining this command, use `\grechangeformat{lowchoralsign}...` instead
-- `\grehighchoralsignstyle`, if you were redefining this command, use `\grechangeformat{highchoralsign}...` instead
+- `\GreSetStaffLinesFormat`, supplanted by `\grechangestyle{normalstafflines}...`
+- `\greinitialformat`, if you were redefining this command, use `\grechangestyle{initial}...` instead
+- `\grebiginitialformat`, if you were redefining this command, use `\grechangestyle{biginitial}...` instead
+- `\gretranslationformat`, if you were redefining this command, use `\grechangestyle{translation}...` instead
+- `\greabovelinestextstyle`, if you were redefining this command, use `\grechangestyle{abovelinestext}...` instead
+- `\grelowchoralsignstyle`, if you were redefining this command, use `\grechangestyle{lowchoralsign}...` instead
+- `\grehighchoralsignstyle`, if you were redefining this command, use `\grechangestyle{highchoralsign}...` instead
 - `\setaboveinitialseparation`, supplanted by `\grechangedim{annotationseparation}...`
 - `\scorereference`
 - `\GreScoreReference`

Modified: trunk/Build/source/texk/gregorio/gregorio-src/COPYING.md
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/COPYING.md	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/COPYING.md	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,6 +1,6 @@
 #License of Gregorio
 
-The program Gregorio is (C) 2007-2015 The Gregorio project, see
+The program Gregorio is (C) 2007-2016 The Gregorio project, see
 [CONTRIBUTORS.md](CONTRIBUTORS.md) for authors. It is distributed under
 the GPLv3 license, printed below.
 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/Makefile.am
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/Makefile.am	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/Makefile.am	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
 #
 # This file is part of Gregorio.
 #
@@ -23,12 +23,23 @@
 			 UPGRADE.md COPYING.md .gregorio-version VersionManager.py \
 			 build.sh install.sh install-gtex.sh
 
+export TOP_LEVEL_MAKE = true
+
+gregorio:
+	make -C src all
+
 fonts: make-fonts
 make-fonts:
 	make -C fonts fonts
 
-export TOP_LEVEL_MAKE = true
+clean-fonts:
+	make -C fonts clean-fonts
 
+doc: pdf
+clean-pdf: clean-doc
+clean-doc:
+	make -C doc clean-doc
+
 gregoriotex.tds.zip: dist install-gtex.sh
 	./install-gtex.sh tds
 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/README.md
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/README.md	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/README.md	2016-09-25 06:05:30 UTC (rev 42143)
@@ -16,6 +16,12 @@
 
 You need a recent and working [TeXLive](https://www.tug.org/texlive/), on top of which you just need to install latest [Gregorio release](https://github.com/gregorio-project/gregorio/releases). See [the website](http://gregorio-project.github.io/installation.html) for more details.
 
+**Note:** Due to a bug in the current release (v2.7-fix-3) of `luaotfload` the documentation cannot be built against TeXLive 2016 (see [#1188](https://github.com/gregorio-project/gregorio/issues/1188)).  As a result, building from a clone of the repository will fail against that version.  A work around for this bug exists ([9fe9139](https://github.com/henryso/gregorio/commit/9fe9139178dce6adebffbae65016800748450b61), but using it breaks compilation under TeXLive 2015 and the bug has been fixed in the latest master for `luaotfload`.  The result is that users should do one of the following:
+
+- Install from the distribution tar ball (recommended for those installing a stable release).
+- Switch to TeXLive 2015 to build the docs.
+- Upgrade your `luaotfload` to a more recent version (v2.8-rc1 or later).
+
 ## Documentation
 
 You can find documentation and useful links in the [documentation](doc/), on [the main website](http://gregorio-project.github.io/) and on [a wiki](http://gregoriochant.org).

Modified: trunk/Build/source/texk/gregorio/gregorio-src/UPGRADE.md
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/UPGRADE.md	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/UPGRADE.md	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,6 +2,69 @@
 
 This file contains instructions to upgrade to a new release of Gregorio.
 
+## 4.2
+
+### Executable file name
+
+In order to facilitate installation alongside TeX Live, the version number is now appended to the gregorio executable file name.  In version 4.2.0, the filename is gregorio-4.2.0.  If you run the executable directly, you will need to modify your procedures and/or scripts to use the new name.  Alternately, creating a symbolic link, if your system supports it, may work for you.
+
+If you auto-compile or force-compile your GABC files and are *not* using the Gregorio packaged with TeX Live, you will probably need to use the `--shell-escape` option when compiling your `.tex` files.  Alternately, you can add the new filename to your system's `shell_escape_commands` TeX option.
+
+Unfortunately, there appears to be no easier way to let a user-installed Gregorio coexist with the TeX-Live-packaged Gregorio.  Please note: in TeX Live 2016, which includes Gregorio 4.1.1, the executable filename does not include the version number, though that will change starting with TeX Live 2017.
+
+### Stemmed oriscus flexus orientation
+
+As of version 4.2, the orientation of the stemmed oriscus flexus `(gOe)` is consistent with the unstemmed oriscus flexus `(goe)` in that the oriscus points downwards (since the note which follows is of lower pitch).  If you prefer the oriscus to point upwards, you will need to use the `1` modifier (as in `(gO1e)`), which will force an upward orientation of the oriscus.
+
+### Oriscus orientation at the unision
+
+As of version 4.2, when the note after the oriscus is at the same pitch as the oriscus, the oriscus will point downwards by default.  If you prefer it to point upwards, append the `1` modifier to force the upward orientation.
+
+### Podatus followed by a virga
+
+As of version 4.2, a podatus followed by a virga of the same or higher pitch as the second note in the podatus (e.g., `(eghv)`) will be kept together, disallowing a line break between the two shapes.  If you would like to allow a line break between the two shapes, use a `/` or some other breakable space between them (e.g., `(eg/hv)`).
+
+### Penalties
+
+As of version 4.2, the penalties should be changed by using `\grechangecount` rather than the old way of redefining macros.  The following tunable values are available (they have the same name as their old macro counterparts, minus the `gre`):
+
+- `brokenpenalty`
+- `clubpenalty`
+- `endafterbaraltpenalty`
+- `endafterbarpenalty`
+- `endofelementpenalty`
+- `endofsyllablepenalty`
+- `endofwordpenalty`
+- `finalpenalty`
+- `hyphenpenalty`
+- `looseness`
+- `newlinepenalty`
+- `nobreakpenalty`
+- `pretolerance`
+- `tolerance`
+- `widowpenalty`
+
+See GregorioRef for descriptions.
+
+Additionally, if you were redefining `\greemergencystretch`, you should now be changing the `emergencystretch` dimension using the `\grechangedim` command.
+
+### Custos with alteration
+
+If the note following a custos has an alteration (flat, natural, or sharp), the custos will now also have that alteration typeset before it.  If you prefer the old behavior, use `\gresetcustosalteration{invisible}`.  This setting may be switched to `visible` and `invisible` between scores.
+
+### Punctum inclinatum orientation
+
+As of version 4.2, a different glyph is used for puncta inclinata in an ascent versus puncta inclinata in a descent.  However, because the two shapes clash with each other, Gregorio will attempt to use the same shape for all notes within a string of puncta inclinata.  This is accomplished by a heuristic algorithm that determines the glyph to use, but tastes differ, so you may override the shape by appending `0` (to force descending) or `1` (to force ascending) after the letter used for the punctum inclinatum.
+
+Two additional distances have been added to handle strings of puncta inclinata which both ascend and descend.  `descendingpunctuminclinatumascendingshift` will be used between two descending punctum inclinatum glyphs which ascend in pitch, and `ascendingpunctuminclinatumdescendingshift` will be used between two ascending punctum inclinatum glyphs which descend in pitch.
+
+### Styles spanning syllables
+
+From version 4.2, gabc styles persist through syllables so you can now, for instance, style an entire verse differently from the rest of the piece by starting the style at the beginning of the verse and ending it at the end of the verse.  This covers italics (`<i>`), bold (`<b>`), small capitals (`<sc>`), underlined text (`<ul>`), colored text (`<c>`), and "teletype" text (`<tt>`).
+
+Prior to version 4.2, Gregorio inconsistenly indicated style errors.  Now, errors like ending a style that is not started and starting a style that is already started will be caught more consistently.  If you are getting errors to this effect, double-check the styles in your score to make sure that styles are started and ended properly.
+
+
 ## 4.1.2
 
 ### Changes to texmf tree
@@ -16,11 +79,11 @@
 
 As always, please file a bug report if you have any problems with the update process.
 
-
 ### Parmesan font renamed to Grana Padano
 
 To avoid conflicts with the LilyPond Parmesan font, the Gregorio Parmesan font is now called Grana Padano.  If you were using `\gresetgregoriofont{parmesan}`, you should now use `\gresetgregoriofont{granapadano}`.
 
+
 ## 4.1.1
 
 ### Vertical spacings

Modified: trunk/Build/source/texk/gregorio/gregorio-src/VersionManager.py
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/VersionManager.py	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/VersionManager.py	2016-09-25 06:05:30 UTC (rev 42143)
@@ -44,6 +44,7 @@
 GREGORIO_FILES = ["configure.ac",
                   "windows/gregorio-resources.rc",
                   "macosx/Gregorio.pkgproj",
+                  "macosx/douninstall.sh",
                   "windows/gregorio.iss",
                   "doc/GregorioRef.tex",
                   "tex/gregoriotex.sty",
@@ -61,6 +62,7 @@
                   "tex/gregoriotex-nabc.lua",
                   "tex/gregoriosyms.sty",
                   "fonts/squarize.py",
+                  "contrib/gregorio-scribus.lua",
                  ]
 
 def get_parser():

Modified: trunk/Build/source/texk/gregorio/gregorio-src/build.sh
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/build.sh	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/build.sh	2016-09-25 06:05:30 UTC (rev 42143)
@@ -11,7 +11,7 @@
 #      --build=    : build system for mingw32 cross-compilation
 #      --arch=     : crosscompile for ARCH on OS X
 #      --jobs=     : the number of jobs to run simultaneously in the make step
-#      --force=    : force autoreconf or font building
+#      --force=    : force autoreconf
 #      {other)     : anything else is passed to configure verbatim
       
 # try to find bash, in case the standard shell is not capable of
@@ -45,7 +45,6 @@
 MAKEOPTS=
 OTHERARGS=
 FORCE_AUTORECONF=
-FORCE_FONTS=
 
 until [ -z "$1" ]; do
   case "$1" in
@@ -55,7 +54,6 @@
     --arch=*    ) MACCROSS=TRUE; ARCH=`echo $1 | sed 's/--arch=\(.*\)/\1/' ` ;;
     -j*|--jobs=*) MAKEOPTS="$MAKEOPTS $1" ;;
     --force=autoreconf) FORCE_AUTORECONF=TRUE ;;
-    --force=fonts) FORCE_FONTS=TRUE ;;
     *           ) OTHERARGS="$OTHERARGS $1" ;;
   esac
   shift
@@ -71,14 +69,10 @@
   MINGWSTR=mingw32
   if [ -d /usr/mingw32 ]; then
     MINGWSTR=mingw32
-  else
-    if [ -d /usr/i386-mingw32msvc ]; then
+  elif [ -d /usr/i386-mingw32msvc ]; then
       MINGWSTR=i386-mingw32msvc
-    else
-      if [ -d /usr/i586-mingw32msvc ]; then
+  elif [ -d /usr/i586-mingw32msvc ]; then
         MINGWSTR=i586-mingw32msvc
-      fi
-    fi
   fi
   OLDPATH=$PATH
   PATH=/usr/$MINGWSTR/bin:$PATH
@@ -89,8 +83,7 @@
     --host=$MINGWSTR \
     --build=$MINGWBUILD \
     --prefix=/usr/$MINGWSTR"
-else
-if [ "$MACCROSS" = "TRUE" ]
+elif [ "$MACCROSS" = "TRUE" ]
 then
   # make sure that architecture parameter is valid
   case $ARCH in
@@ -100,7 +93,6 @@
   ARCHFLAGS="$ARCHFLAGS"
   CFLAGS="-arch $ARCH -g -O2 $CFLAGS"
   LDFLAGS="-arch $ARCH $LDFLAGS" 
-fi  
 fi
 
 
@@ -124,18 +116,9 @@
 echo
 
 echo "Building Gregorio; options:$MAKEOPTS"
-${MAKE} ${MAKEOPTS} || die "build Gregorio"
+${MAKE} ${MAKEOPTS} all doc || die "build Gregorio"
 echo
 
-if [ "$FORCE_FONTS" = "TRUE" -o ! -e fonts/greciliae.ttf ]
-then
-  echo "Building fonts; options:$MAKEOPTS"
-  cd fonts
-  ${MAKE} ${MAKEOPTS} fonts || die "build fonts"
-  cd ..
-  echo
-fi
-
 if [ "$MINGWCROSS" = "TRUE" ]
 then
   PATH=$OLDPATH

Modified: trunk/Build/source/texk/gregorio/gregorio-src/configure.ac
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/configure.ac	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/configure.ac	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,5 @@
 dnl Gregorio
-dnl Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+dnl Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
 dnl
 dnl This file is part of Gregorio.
 dnl
@@ -16,8 +16,8 @@
 dnl You should have received a copy of the GNU General Public License
 dnl along with Gregorio.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([gregorio],[4.1.4],[https://github.com/gregorio-project/gregorio/issues],[gregorio],[http://gregorio-project.github.io/])
-FILENAME_VERSION="4_1_4"
+AC_INIT([gregorio],[4.2.0],[https://github.com/gregorio-project/gregorio/issues],[gregorio],[http://gregorio-project.github.io/])
+FILENAME_VERSION="4_2_0"
 AC_SUBST(FILENAME_VERSION)
 AC_DEFINE_UNQUOTED(FILENAME_VERSION, "$FILENAME_VERSION", [version suitable for file names])
 MK=""
@@ -38,6 +38,8 @@
 AC_CHECK_TOOL([RC], [windres], [no])
 AM_CONDITIONAL([HAVE_RC], [test x$RC != xno])
 
+AC_CHECK_ALIGNOF(uint32_t)
+
 AX_CHECK_COMPILE_FLAG([-std=gnu89], [CFLAGS+=" -std=gnu89"])
 dnl until flex gets their act together, use pedantic instead of pedantic-errors
 AX_CHECK_COMPILE_FLAG([-pedantic], [CFLAGS+=" -pedantic"])
@@ -50,7 +52,6 @@
 AX_CHECK_COMPILE_FLAG([-Wdeclaration-after-statement], [CFLAGS+=" -Wdeclaration-after-statement"])
 AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS+=" -Wall"])
 AX_CHECK_COMPILE_FLAG([-Wextra], [CFLAGS+=" -Wextra"])
-CPPFLAGS+=" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 "
 AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS+=" -Wl,-z,relro"])
 AX_CHECK_LINK_FLAG([-Wl,-z,now], [LDFLAGS+=" -Wl,-z,now"])
 AX_CHECK_LINK_FLAG([-fPIE], [LDFLAGS+=" -fPIE"])
@@ -96,7 +97,11 @@
             AX_CHECK_COMPILE_FLAG([--coverage], [CFLAGS+=" --coverage"])
             AX_CHECK_LINK_FLAG([--coverage], [LDFLAGS+=" --coverage"])
         ])
+    ], [
+        CPPFLAGS+=" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 "
     ])
+], [
+    CPPFLAGS+=" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 "
 ])
 
 AC_CONFIG_HEADERS([src/config_.h])

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,6 +1,5 @@
 <?xml version="1.0"?>
 <!--
- 
  XML file for using gregorio inside scribus.
  Copyright (C) 2009 Pierre Couderc <pierre at couderc.eu>.
 
@@ -22,21 +21,19 @@
 -->
 <editorsettings description="gregorio" icon="gregorio.png">
     <!-- change the path to gregorio-scribus.lua here. -->
-	<executable command='texlua /usr/share/scribus/editorconfig/gregorio-scribus.lua "%file" "%dir"'/>
-	<imagefile extension=".pdf"/>
-	<highlighter>
+    <executable command='texlua /usr/share/scribus/editorconfig/gregorio-scribus.lua "%file" "%dir"'/>
+    <imagefile extension=".pdf"/>
+    <highlighter>
         <rule name="gabc header" regex="[a-zA-Z]+:" color="blue" minimal="true"/>
         <rule name="gabc delimiter" regex="%%" color="green" minimal="true"/>
         <rule name="gabc notes" regex="\([^)]*\)" color="red" minimal="true"/>
-	</highlighter>
-    <empty-frame-text>
-name: myscore;
+    </highlighter>
+    <empty-frame-text>name: myscore;
 %%
 (c3) Pó(eh/hi)pu(h)lus(h) Si(hi)on,(hgh.)
     </empty-frame-text>
     <!-- you can change the basic headers there -->
-    <preamble>
-\documentclass[a4paper,$scribus_grefontsize$]{extarticle}
+    <preamble>\documentclass[a4paper,$scribus_grefontsize$]{extarticle}
 \usepackage[left=0cm,top=0cm,right=0cm,bottom=0cm,nohead,nofoot]{geometry}
 \usepackage{color}
 \title{Scribus-Latex-gregorio-File}
@@ -48,48 +45,55 @@
 \begin{document}
 $scribus_greconf$
 </preamble>
-<postamble>
-</postamble>
-	<tab type="settings">
-		<title><i18n>
-				<en>Headers</en>
-				<fr>En-tête</fr>
-		</i18n></title>
-        		<list name="grefontsize" default="11pt">
-			<title><i18n>
-					<en>Fontsize:</en>
-					<de>Schriftgröße:</de>
-					<fr>Taille police :</fr>
-					<pl>Stopień pisma:</pl>
-					<ru>Кегль шрифт:</ru>
-			</i18n></title>
-			<option value="8pt">8pt</option>
-			<option value="9pt">9pt</option>
-			<option value="10pt">10pt</option>
-			<option value="11pt">11pt</option>
-			<option value="12pt">12pt</option>
-			<option value="14pt">14pt</option>
-			<option value="17pt">17pt</option>
-			<option value="20pt">20pt</option>
-		</list>
-		<text name="additionalgreheaders" type="long" default="\usepackage[utf8]{luainputenc}
-\usepackage[T1]{fontenc}
-\usepackage{times}"><i18n>
-			<en>Additional LaTeX Headers:</en>
-			<de>Zusätzliche LaTeX Header:</de>
-			<fr>En-tête LaTeX additionnel :</fr>
-		</i18n></text>
-	</tab>
-	<tab type="settings">
-		<title><i18n>
-				<en>Gregorio Options</en>
-				<fr>Conf. gregorio</fr>
-		</i18n></title>
-        <comment><i18n>
-			<en>Input here your additional gregorio-specific TeX commands.
-</en><fr>Ajoutez ici vos commandes additionelles pour GregorioTeX.
-</fr>
-		</i18n></comment>
+    <postamble></postamble>
+    <tab type="settings">
+        <title>
+            <i18n>
+                <en>Headers</en>
+                <fr>En-tête</fr>
+            </i18n>
+        </title>
+        <list name="grefontsize" default="11pt">
+            <title>
+                <i18n>
+                    <en>Fontsize:</en>
+                    <de>Schriftgröße:</de>
+                    <fr>Taille police :</fr>
+                    <pl>Stopień pisma:</pl>
+                    <ru>Кегль шрифт:</ru>
+                </i18n>
+            </title>
+            <option value="8pt">8pt</option>
+            <option value="9pt">9pt</option>
+            <option value="10pt">10pt</option>
+            <option value="11pt">11pt</option>
+            <option value="12pt">12pt</option>
+            <option value="14pt">14pt</option>
+            <option value="17pt">17pt</option>
+            <option value="20pt">20pt</option>
+        </list>
+        <text name="additionalgreheaders" type="long" default="\usepackage{fontspec}
+\usepackage{libertine}">
+            <i18n>
+                <en>Additional LaTeX Headers:</en>
+                <de>Zusätzliche LaTeX Header:</de>
+                <fr>En-tête LaTeX additionnel :</fr>
+            </i18n>
+        </text>
+    </tab>
+    <tab type="settings">
+        <title>
+            <i18n>
+                <en>Gregorio Options</en>
+                <fr>Conf. gregorio</fr>
+            </i18n>
+        </title>
+        <comment>
+            <i18n>
+                <en>Input here your additional gregorio-specific TeX commands.</en>
+                <fr>Ajoutez ici vos commandes additionelles pour GregorioTeX.</fr>
+            </i18n>
+        </comment>
         <text name="greconf" type="long" default="\grechangestaffsize{17}"></text>
-	</tab>
+    </tab>
 </editorsettings>

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
 #
 # This file is part of Gregorio.
 #

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
 #
 # This file is part of Gregorio.
 #

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command	2016-09-25 06:05:30 UTC (rev 42143)
@@ -62,10 +62,12 @@
 echo "Adding Gregorio file extensions to appropriate preference lists"
 #enable syntax coloring and the Typeset button for gabc files
 defaults write TeXShop OtherTeXExtensions -array-add "gabc"
+defaults write TeXShop OtherTeXExtensions -array-add "gtex"
 
 #Add gtex and gaux to the list of aux files deleted with Trash Aux Files
 defaults write TeXShop OtherTrashExtensions -array-add "gtex"
 defaults write TeXShop OtherTrashExtensions -array-add "gaux"
+defaults write TeXShop OtherTrashExtensions -array-add "glog"
 
 echo "Configuration complete"
 exit 0

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command	2016-09-25 06:05:30 UTC (rev 42143)
@@ -82,7 +82,7 @@
         cleanup=true
     else
         if $cleanup; then
-            echo "cleanup-patterns:	\$jobname.gaux *-*_*_*.gtex" >> "$CONFIG"
+            echo "cleanup-patterns:	\$jobname.gaux \$jobname.glog *-*_*_*.gtex" >> "$CONFIG"
             cleanup=false
         fi
     fi

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim	2016-09-25 06:05:30 UTC (rev 42143)
@@ -10,7 +10,8 @@
 syn match gabcAttributeName /^[^:]*:/
 syn match gabcAttributeEnd ";"
 syn match gabcNoteError "." contained
-syn match gabcBasicNote "[a-npA-NP]" contained
+syn match gabcBasicNote "[a-np]" contained
+syn match gabcBasicNote "[A-NP][01]\?" contained
 syn match gabcAlteration "[\<\>~xy#vVwWqQR\-Ss\.+]" contained
 syn match gabcAlteration "_[0-5]*" contained
 syn match gabcAlteration "[oO'\.][01]\?" contained
@@ -37,7 +38,7 @@
 syn match gabcSpace "/\[[^\]]*\]" contained extend
 syn match gabcCommand "@\@<!\[[^\]]*\]" contained extend
 
-syn region gabcComment start="%" end="$" contained keepend extend
+syn region gabcComment start="%" end="$" keepend extend
 syn region gabcAlt matchgroup=gabcTextMarkup start="<alt>" end="</alt>"
             \ contained
 syn region gabcSpecial matchgroup=gabcTextMarkup start="<sp>" end="</sp>"
@@ -45,13 +46,13 @@
 syn region gabcVerbatim matchgroup=gabcTextMarkup start="<v>" end="</v>"
             \ contained
 syn region gabcNabc matchgroup=gabcNabcCut start="|" end="[|)]" keepend
-syn cluster gabcFusable contains=gabcBasicNote,gabcAlteration,gabcBar,gabcSpace,
+syn cluster gabcFusible contains=gabcBasicNote,gabcAlteration,gabcBar,gabcSpace,
             \gabcComment,gabcCommand,gabcNoteError,gabcFuse,
             \gabcTextOrNoteMarkup,gabcClef,gabcNabc
 syn region gabcFuseGroup matchGroup=gabcFuseGroup start="@\[" end="\]"
-            \ contains=@gabcFusable,gabcFuseEnd contained keepend
+            \ contains=@gabcFusible,gabcFuseEnd contained keepend
 syn region gabcNotes matchgroup=gabcNote start="(" end=")"
-            \ contains=@gabcFusable,gabcFuseGroup contained keepend
+            \ contains=@gabcFusible,gabcFuseGroup contained keepend
 syn region gabcTranslation matchgroup=gabcTextMarkup start="\[" end="\]"
             \ contained extend
 syn region gabcText start="^\(%%\)\@=" end="\%$"

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/gregorio-scribus.lua
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/gregorio-scribus.lua	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/gregorio-scribus.lua	2016-09-25 06:05:30 UTC (rev 42143)
@@ -22,7 +22,7 @@
 
 require"lfs"
 
-local gregoriobin = 'gregorio'
+local gregoriobin = 'gregorio-4_2_0' -- FILENAME_VERSION
 local lualatexbin = "lualatex"
 
 local function basename(name)

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,5 @@
 @echo off
-SETLOCAL ENABLEEXTENSIONS
+SETLOCAL ENABLEEXTENSIONS EnableDelayedExpansion
 
 set output="%TEMP%\system-setup.log"
 
@@ -79,49 +79,134 @@
 echo. >> %output%
 
 echo ###	Gregorio Setup >> %output%
-echo ####	Version >> %output%
-echo. >> %output%
-gregorio -V >> %output% 2>&1
-echo. >> %output%
-echo #### 	Location >> %output%
-echo. >> %output%
- at for %%e in (%PATHEXT%) do @for %%i in (gregorio%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i >> %output% 2>&1
-echo. >> %output%
+echo ####	Locations and Versions >> %output%
+for /f "delims=" %%G in ('where /f gregorio*') do (
+  echo %%G >> %output%
+  for /f "delims=" %%H in ('%%G -V') do echo %%H >> %output% 2>&1
+  echo. >> %output%
+)
 echo ####	GregorioTeX Locations >> %output%
 echo. >> %output%
 
-set files=gregorio-vowels.dat ^
-gregoriosyms.sty ^
+:: Files using GREGORIO_VERSION in {}
+set files=gregoriosyms.sty ^
 gregoriotex-chars.tex ^
 gregoriotex-main.tex ^
-gregoriotex-ictus.tex ^
-gregoriotex-nabc.lua ^
 gregoriotex-nabc.tex ^
-gregoriotex-signs.lua ^
 gregoriotex-signs.tex ^
 gregoriotex-spaces.tex ^
 gregoriotex-syllable.tex ^
-gregoriotex-symbols.lua ^
-gregoriotex-symbols.tex ^
-gregoriotex.lua ^
-gregoriotex.sty ^
-gregoriotex.tex ^
-gsp-default.tex ^
-greciliae.ttf ^
+gregoriotex-symbols.tex
+
+for %%G in (%files%) do (
+	echo ##### %%G >> %output%
+	for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+		set loc=%%H
+		set loc=!loc:/=\!
+		echo !loc! >> %output%
+		for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" !loc!') do set ver=%%I
+		set ver=!ver:*{=!
+		set ver=!ver:*{=!
+		set trash=}!ver:*}=!
+		call set ver=%%ver:!trash!=%%
+		echo !ver! >> %output% 2>&1
+		set ver=
+	)
+)
+
+:: Files using GREGORIO_VERSION in spaces
+set files=gregoriotex-nabc.lua ^
+gregoriotex-signs.lua ^
+gregoriotex-symbols.lua
+
+for %%G in (%files%) do (
+	echo ##### %%G >> %output%
+	for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+		set loc=%%H
+		set loc=!loc:/=\!
+		echo !loc! >> %output%
+		for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" !loc!') do set ver=%%I
+		set ver=!ver:*N =!
+		echo !ver! >> %output% 2>&1
+		set ver=
+	)
+)
+
+:: Files using GREGORIO_VERSION in ''
+set files=gregoriotex.lua
+
+for %%G in (%files%) do (
+	echo ##### %%G >> %output%
+	for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+		set loc=%%H
+		set loc=!loc:/=\!
+		echo !loc! >> %output%
+		for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" !loc!') do set ver=%%I
+		set ver=!ver:*'=!
+		set trash='!ver:*'=!
+		call set ver=%%ver:!trash!=%%
+		echo !ver! >> %output% 2>&1
+		set ver=
+	)
+)
+
+:: Files using PARSE_VERSION_DATE_LTX
+set files=gregoriotex.sty ^
+gregoriotex.tex
+
+for %%G in (%files%) do (
+	echo ##### %%G >> %output%
+	for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+		set loc=%%H
+		set loc=!loc:/=\!
+		echo !loc! >> %output%
+		for /f "delims=" %%I in ('findstr /r "PARSE_VERSION_DATE_LTX" !loc!') do set ver=%%I
+		set ver=!ver:*v=!
+		set trash=G!ver:*G=!
+		call set ver=%%ver:!trash!=%%
+		echo !ver! >> %output% 2>&1
+		set ver=
+	)
+)
+
+:: Font Files
+set files=greciliae.ttf ^
 greciliae-op.ttf ^
 greextra.ttf ^
 gregorio.ttf ^
 gregorio-op.ttf ^
-gresym.ttf ^
 granapadano.ttf ^
 granapadano-op.ttf ^
-gregall.ttf ^
+gregall.ttf
+
+for %%G in (%files%) do (
+	echo ##### %%G >> %output%
+	for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+		set loc=%%H
+		set loc=!loc:/=\!
+		echo !loc! >> %output%
+		otfinfo --font-version !loc! >> %output% 2>&1
+	)
+)
+
+:: Unversioned and Obsolete Files
+set files=gregorio-vowels.dat ^
+gsp-default.tex ^
+gregoriotex-ictus.tex ^
+gresym.ttf ^
+parmesan.ttf ^
+parmesan-op.ttf ^
 gregsmodern.ttf
 
 for %%G in (%files%) do (
 	echo ##### %%G >> %output%
-	kpsewhich -all %%G >> %output% 2>&1
+	for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+		set loc=%%H
+		set loc=!loc:/=\!
+		echo !loc! >> %output%
+	)
 )
+
 echo. >> %output%
 echo ####	kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> %output%
 kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> %output% 2>&1

Modified: trunk/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command	2016-09-25 06:05:30 UTC (rev 42143)
@@ -107,22 +107,21 @@
 echo "" >> $OUTPUT
 
 echo "###	Gregorio Setup" >> $OUTPUT
-echo "####	Version" >> $OUTPUT
+echo "####	Locations and Versions" >> $OUTPUT
 echo "" >> $OUTPUT
-gregorio -V >> $OUTPUT 2>&1
-echo "" >> $OUTPUT
-echo "#### 	Location" >> $OUTPUT
-echo "" >> $OUTPUT
-which -a gregorio >> $OUTPUT 2>&1
-echo "" >> $OUTPUT
+progs=`compgen -cbka -A function 'gregorio'`
+for prog in $progs; do
+  which -a $prog >> $OUTPUT 2>&1
+  $prog -V >> $OUTPUT 2>&1
+  echo "" >> $OUTPUT
+done
 echo "####	GregorioTeX Locations" >> $OUTPUT
 echo "" >> $OUTPUT
 
-files="gregorio-vowels.dat
-gregoriosyms.sty
+# Files using GREGORIO_VERSION
+files="gregoriosyms.sty
 gregoriotex-chars.tex
 gregoriotex-main.tex
-gregoriotex-ictus.tex
 gregoriotex-nabc.lua
 gregoriotex-nabc.tex
 gregoriotex-signs.lua
@@ -131,19 +130,59 @@
 gregoriotex-syllable.tex
 gregoriotex-symbols.lua
 gregoriotex-symbols.tex
-gregoriotex.lua
-gregoriotex.sty
-gregoriotex.tex
-gsp-default.tex
-greciliae.ttf
+gregoriotex.lua"
+
+for f in $files
+do
+	echo "##### $f" >> $OUTPUT
+	locations=`kpsewhich -all $f`
+	for loc in $locations; do
+	  echo $loc >> $OUTPUT 2>&1
+	  grep -m 1 'GREGORIO_VERSION' $loc | grep -o '[0-9]*\.[0-9]*\.[0-9]*-*[betarc]*[0-9]*' >> $OUTPUT 2>&1
+	done
+done
+
+# Files using PARSE_VERSION_DATE_LTX
+files="gregoriotex.sty
+gregoriotex.tex"
+
+for f in $files
+do
+	echo "##### $f" >> $OUTPUT
+	locations=`kpsewhich -all $f`
+	for loc in $locations; do
+	  echo $loc >> $OUTPUT 2>&1
+	  grep -m 1 'PARSE_VERSION_DATE_LTX' $loc | grep -o '[0-9]*\.[0-9]*\.[0-9]*-*[betarc]*[0-9]*' >> $OUTPUT 2>&1
+	done
+done
+
+# Font Files
+files="greciliae.ttf
 greciliae-op.ttf
 greextra.ttf
 gregorio.ttf
 gregorio-op.ttf
-gresym.ttf
 granapadano.ttf
 granapadano-op.ttf
-gregall.ttf
+gregall.ttf"
+
+for f in $files
+do
+	echo "##### $f" >> $OUTPUT
+	locations=`kpsewhich -all $f`
+	for loc in $locations; do
+	  echo $loc >> $OUTPUT 2>&1
+	  otfinfo --font-version $loc >> $OUTPUT 2>&1
+	done
+done
+
+# Unversioned and Obsolete Files
+files="gregorio-vowels.dat
+gsp-default.tex
+gregoriotex-ictus.tex
+gresym.ttf
+parmesan.ttf
+parmesan-op.ttf
 gregsmodern.ttf"
 
 for f in $files
@@ -152,11 +191,13 @@
 	kpsewhich -all $f >> $OUTPUT 2>&1
 done
 
+
 echo "" >> $OUTPUT
-echo "####	kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty" >> $OUTPUT
+echo "###	LuaTeX Double Checks" >> $OUTPUT
+echo "#### kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty" >> $OUTPUT
 kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> $OUTPUT 2>&1
 echo "" >> $OUTPUT
-echo "####	kpsewhich --all -engine luatex gregoriotex.tex" >> $OUTPUT
+echo "#### kpsewhich --all -engine luatex gregoriotex.tex" >> $OUTPUT
 kpsewhich --all -engine luatex gregoriotex.tex >> $OUTPUT 2>&1
 echo "" >> $OUTPUT
 echo "" >> $OUTPUT

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/Appendix_Font_Tables.tex
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/Appendix_Font_Tables.tex	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/Appendix_Font_Tables.tex	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,23 @@
 % !TEX root = GregorioRef.tex
 % !TEX program = LuaLaTeX+se
+%
+% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
+%
+% This file is part of Gregorio.
+%
+% Gregorio 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 3 of the License, or
+% (at your option) any later version.
+%
+% Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+%
 \begin{landscape}
 
 \section{Font Glyph Tables}\label{glyphtable}

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_User.tex
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_User.tex	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_User.tex	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,23 @@
 % !TEX root = GregorioRef.tex
 % !TEX program = LuaLaTeX+se
+%
+% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
+%
+% This file is part of Gregorio.
+%
+% Gregorio 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 3 of the License, or
+% (at your option) any later version.
+%
+% Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+%
 \section{User Controls}
 
 These functions are available to the user to customize elements of the
@@ -234,7 +252,8 @@
 	\#1 & string & The name of the distance to be changed.  See \nameref{distances} below.\\
 	\#2 & string & The distance in string format.  \textbf{Note:} You cannot use a length register for this argument.  You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\
 	\#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\
-	& \texttt{scalable} & Distance will scale when staff size is changed.
+	& \texttt{scalable} & Distance will scale when staff size is changed.\\
+	& \texttt{inherited} & Distance will inherit its value from another distance.  When this argument is used, then \#2 should be the name of another Gregorio\TeX\ distance.
 \end{argtable}
 
 \macroname{\textbackslash grechangedim}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-spaces.tex}
@@ -244,9 +263,22 @@
 	\#1 & string & The name of the distance to be changed.  See \nameref{distances} below.\\
 	\#2 & string & The distance in string format.  \textbf{Note:} You cannot use a length register for this argument.  You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\
 	\#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\
-	& \texttt{scalable} & Distance will scale when staff size is changed.
+	& \texttt{scalable} & Distance will scale when staff size is changed.\\
+	& \texttt{inherited} & Distance will inherit its value from another distance.  When this argument is used, then \#2 should be the name of another Gregorio\TeX\ distance.
 \end{argtable}
 
+\macroname{\textbackslash grechangenextscorelinedim}{\{\#1\}\{\#2\}\{\#3\}\{\#4\}}{gregoriotex-spaces.tex}
+Changes one of Gregorio\TeX’s distances for a given line in the next included score.  This works with \texttt{spaceabovelines}, \texttt{spacebeneathtext}, and \texttt{spacelinestext}.
+
+\begin{argtable}
+	\#1 & integer & The number of the line in the next score to be adjusted.\\
+	\#2 & string & The name of the distance to be changed.  See \nameref{distances} below.\\
+	\#3 & string & The distance in string format.  \textbf{Note:} You cannot use a length register for this argument.  You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\
+	\#4 & \texttt{fixed} & Distance will not scale when staff size is changed.\\
+	& \texttt{scalable} & Distance will scale when staff size is changed.\\
+	& \texttt{inherited} & Distance will inherit its value from another distance.  When this argument is used, then \#3 should be the name of another Gregorio\TeX\ distance.
+\end{argtable}
+
 \macroname{\textbackslash grescaledim}{\{\#1\}\{\#2\}}{gregoriotex-spaces.tex}
 Macro to turn on or off scaling with the staff size for a particular distance.
 
@@ -259,10 +291,10 @@
 \textbf{Nota bene:} This macro also can be used to change whether or not the staff line thickness scales with the staff size by specifying \texttt{stafflinefactor} for the first argument.
 
 \macroname{\textbackslash grechangecount}{\{\#1\}\{\#2\}}{gregoriotex-spaces.tex}
-Macro to change one of Gregorio\TeX’s counts (numeric values).
+Macro to change one of Gregorio\TeX’s counts or penalities (numeric values).
 
 \begin{argtable}
-	\#1 & string & The name of the count to be changed.  See \nameref{counts} below.\\
+	\#1 & string & The name of the count to be changed.  See \nameref{counts} and \nameref{penalties} below.\\
 	\#2 & integer & The new value.\\
 \end{argtable}
 
@@ -707,10 +739,10 @@
 	\stylename{initial} & Score initial (the first letter of the score, when offset from the rest of the text) & 40 pt font\\
 	\stylename{lowchoralsign} & low choral signs & none\\
 	\stylename{modedifferentia} & the rendered annotation from the \texttt{mode-differentia: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textbf{bold}}\\
-	\stylename{modeline} & the rendered annotation from the \texttt{mode: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textsc{\textbf{bold small capitals}}}\\
+	\stylename{modeline} & the rendered annotation from the \texttt{mode: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textsc{\textbf{bold small capitals}}} (\LaTeX)\\
+	& & \textbf{bold} (Plain\TeX)\\
 	\stylename{modemodifier} & the rendered annotation from the \texttt{mode-modifier: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textit{\textbf{bold italics}}}\\
-	\stylename{nabc} & ancient notation & {\color{gregoriocolor}gregoriocolor} (\LaTeX)\\
-									 && none (Plain \TeX)\\
+	\stylename{nabc} & ancient notation & {\color{gregoriocolor}gregoriocolor}\\
 	\stylename{normalstafflines} & Full length staff lines & none\\
 	\stylename{translation} & Translation text (appears below lyrics) & {\it italics}\\
 \end{tabular}
@@ -780,7 +812,7 @@
 
 \textbf{Nota Bene:} Usually the argument of this command should be an \verb=\includegraphics= command, but you may use what ever you want as the illuminated initial.
 
-\macroname{\textbackslash gresetinitiallines}{\#1}{gregoriotex-syllable.tex}
+\macroname{\textbackslash gresetinitiallines}{\{\#1\}}{gregoriotex-syllable.tex}
 Sets the number of lines the score initial requires.
 
 \begin{argtable}
@@ -789,15 +821,24 @@
 
 \textbf{Nota Bene:} As currently implemented, you cannot set an initial which is larger than 2 lines and in order to do so you must set manual line breaks in the gabc for the first two lines.
 
-\macroname{\textbackslash gresetmodenumbersystem}{\#1}{gregoriotex-main.tex}
+\macroname{\textbackslash gresetmodenumbersystem}{\{\#1\}}{gregoriotex-main.tex}
 Sets the number system used for the mode number.
 
 \begin{argtable}
-	\#1 & \texttt{roman-minuscule} & Use lower-case Roman numerals (the default, good for small capitals).\\
-			& \texttt{roman-majuscule} & Use upper-case Roman numerals.\\
+	\#1 & \texttt{roman-minuscule} & Use lower-case Roman numerals (the default in \LaTeX, good for small capitals).\\
+			& \texttt{roman-majuscule} & Use upper-case Roman numerals (the default in Plain\TeX).\\
 			& \texttt{arabic} & Use Arabic numerals.\\
 \end{argtable}
 
+\macroname{\textbackslash gresetlyrics}{\{\#1\}}{gregoriotex-syllable.tex}
+Sets the visibility of the lyrics.
+
+\begin{argtable}
+	\#1 & \texttt{visible} & Lyrics are visible (default).\\
+	& \texttt{invisible} & Lyrics are not visible.\\
+\end{argtable}
+
+
 \subsubsection{Text Alignment}
 Gregorio\TeX\ allows you to manipulate the global alignment behavior of some text elements using the following commands.
 
@@ -857,6 +898,21 @@
 
 \textbf{Nota Bene:} These variable refer to the actual contents of the line and not to the ``hypothetical'' limits for the font.  As a result if the top of an annotation containing only short letters will be different from one which contains tall ones even if both use the same font.  Likewise, if the annotation contains no descenders, then baseline and bottom will be the same.  If this is a problem, then the use of struts within the annotation can be used to control the line height (distance from baseline to top) and depth (distance from baseline to bottom).
 
+\macroname{\textbackslash gresetsyllablerewriting}{\{\#1\}}{gregoriotex-syllable.tex}
+Sets whether the last part of a non-final syllable of a word is moved to the
+next syllable when there is no hyphen.  The ``last part'' of a syllable is
+the part that comes after the part that is centered under the first note of
+the syllable.  This feature may allow Lua\TeX{} to find better opportunities
+for ligaturing based on \TeX{} and font settings.
+
+\begin{argtable}
+	\#1 & \texttt{auto} & Gregorio\TeX{} will move the last part of a syllable
+												to the next syllable in a word when there is no
+												hyphen (default).\\
+			& \texttt{off}  & Gregorio\TeX{} will not attempt to rewrite any
+												syllables.\\
+\end{argtable}
+
 \subsubsection{End of Line Behavior}
 While Gregorio\TeX\ will automatically wrap scores to fit your page, there are several ways to fine tune that line breaking behavior with the following commands.
 
@@ -895,6 +951,15 @@
 	& \texttt{prohibit} & Line breaks are prohibited, the entire translation should appear on one line
 \end{argtable}
 
+\macroname{\textbackslash gresetcustosalteration}{\{\#1\}}{gregoriotex-signs.tex}
+Macro for setting whether an alteration (flat, sharp, or natural) should be
+rendered before a custos or not.
+
+\begin{argtable}
+	\#1 & \texttt{visible} & The custos alteration should be printed (default)\\
+			& \texttt{invisible} & The custos alteration should not be printed
+\end{argtable}
+
 \macroname{\textbackslash greseteolcustos}{\{\#1\}}{gregoriotex-main.tex}
 Macro to determine whether Gregorio\TeX\ should automatically place the custos at a line break.
 
@@ -939,7 +1004,22 @@
 	& \texttt{ragged} & Set the last line ragged (default)
 \end{argtable}
 
+\macroname{\textbackslash gresetunbreakablesyllablenotes}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-syllable.tex}
+Configures how notes should be kept together on line breaks.
 
+\begin{argtable}
+	\#1 & integer & The minimum number of notes in the syllable before the
+									syllable may be broken across lines.  Defaults to
+									\getgrecount{unbreakabletotalnotes}.\\
+	\#2 & integer & The minimum number of notes at the start of a syllable that
+									must be kept together when the syllable is broken across
+									lines.  Defaults to \getgrecount{unbreakableinitialnotes}.\\
+	\#3 & integer & The minimum number of notes at the end of a syllable that
+									must be kept together when the syllable is broken across
+									lines.  Defaults to \getgrecount{unbreakablefinalnotes}.\\
+\end{argtable}
+
+
 \subsubsection{Bar spacing}
 
 \macroname{\textbackslash gresetshiftaftermora}{\{\#1\}}{gregoriotex-signs.tex}
@@ -960,12 +1040,22 @@
 Macro to activate the new bar spacing algorithm.  The new algorithm attempts to place the bar line exactly midway between its surrounding notes.  Any text associated with the bar is placed midway between its surrounding text.  Since this might result in the bar line and the text being widely separated, there are also a limits to the distance between their respective centers: \texttt{maxbaroffsettextleft} and \texttt{maxbaroffsettextright} (when text center is respectively on the left or on the right of bar center).
 
 \begin{argtable}
-	\#1 & \texttt{new} & Activates the new spacing algorithm\\
-	& \texttt{old} & Activates the old behavior (Default)\\
+	\#1 & \texttt{new} & Activates the new spacing algorithm (Default)\\
+	& \texttt{old} & Activates the old behavior\\
 \end{argtable}
 
 \subsubsection{Sign printing}
 
+\macroname{\textbackslash gresetnotes}{\{\#1\}}{gregoriotex-syllable.tex}
+Sets the visibility of the notes.
+
+\begin{argtable}
+	\#1 & \texttt{visible} & Notes are visible (default).\\
+	& \texttt{invisible} & Notes are not visible.\\
+\end{argtable}
+
+\textbf{Nota Bene:} If the notes are set to be invisible, then bar lines, rythmic signs, and the like will also be invisible.  However, the staff lines and clefs will still show up (since their visibility is controlled by other settings).
+
 \macroname{\textbackslash greprintsigns}{\{\#1\}\{\#2\}}{gregoriotex-signs.tex}
 Macro to prevent rythmic signs from printing (all signs are printed by default):
 
@@ -975,7 +1065,7 @@
 	& \texttt{mora} & sets the printing of punctum mora and auctum duplex\\
 	& \texttt{all} & set the printing of all of these\\
 	\#2 & \texttt{enable} & enable the printing\\
-	& \texttt{disable} & disable the priting\\
+	& \texttt{disable} & disable the printing\\
 \end{argtable}
 
 Note that punctum mora and auctum duplex have an influence on spacings, so removing them will have an impact on that matter.
@@ -1149,22 +1239,24 @@
 
 Each of the following counts controls some aspect of the configuration of the Gregorio\TeX\ score.  They are changed using \verb=\grechangecount=, documented above.
 
-\macroname{additionaltopspacethreshold}{}{gsp-default.tex}
-
+\begin{gcount}{additionaltopspacethreshold}
 The threshold above which we start accounting notes above lines for additional
 vertical space. For instance with a threshold of \texttt{2}, notes with a pitch
 of \texttt{k} and \texttt{l} will not interfere with the space above lines.
 Set it to a high value if you don't want high notes to interfere with space
 above lines.
+\end{gcount}
 
-Default: \texttt{2}
-
-\macroname{additionaltopspacealtthreshold}{}{gsp-default.tex}
-
+\begin{gcount}{additionaltopspacealtthreshold}
 Same as \texttt{additionaltopspacethreshold} but setting the threshold for
 notes taken into account with above lines text vertical placement.
+\end{gcount}
 
-Default: \texttt{0}
+\begin{gcount}{additionaltopspacenabcthreshold}
+Same as \texttt{additionaltopspacethreshold} but setting the threshold for
+notes taken into account with above lines nabc neume vertical placement
+baseline.
+\end{gcount}
 
 \subsection{Distances}\label{distances}
 
@@ -1290,15 +1382,20 @@
 \end{gdimension}
 
 \begin{gdimension}{punctuminclinatumshift}
-Space between two punctum inclinatum.
+Space between two descending puncta inclinata.
 \end{gdimension}
 
+\begin{gdimension}{punctuminclinatumunisonshift}
+Space between two unison puncta inclinata.
+\end{gdimension}
+
 \begin{gdimension}{beforepunctainclinatashift}
 Space before puncta inclinata.
 \end{gdimension}
 
 \begin{gdimension}{punctuminclinatumanddebilisshift}
-Space between a punctum inclinatum and a punctum inclinatum deminutus.
+Space between a punctum inclinatum and a punctum inclinatum deminutus,
+descending.
 \end{gdimension}
 
 \begin{gdimension}{punctuminclinatumdebilisshift}
@@ -1306,13 +1403,17 @@
 \end{gdimension}
 
 \begin{gdimension}{punctuminclinatumbigshift}
-Space between puncta inclinata, larger ambitus (range=3rd).
+Space between descending puncta inclinata, larger ambitus (range=3rd).
 \end{gdimension}
 
 \begin{gdimension}{punctuminclinatummaxshift}
-Space between puncta inclinata, larger ambitus (range=4th or 5th).
+Space between descending puncta inclinata, larger ambitus (range=4th or 5th).
 \end{gdimension}
 
+\begin{gdimension}{descendingpunctuminclinatumascendingshift}
+Space between descending puncta inclinata shapes in an ascent of pitch.
+\end{gdimension}
+
 \begin{gdimension}{ascendingpunctuminclinatumshift}
 Space between two ascending puncta inclinata.
 \end{gdimension}
@@ -1330,6 +1431,10 @@
 Space between ascending puncta inclinata, larger ambitus (range=4th or 5th).
 \end{gdimension}
 
+\begin{gdimension}{ascendingpunctuminclinatumdescendingshift}
+Space between ascending puncta inclinata shapes in a descent of pitch.
+\end{gdimension}
+
 \begin{gdimension}{descendinginclinatumtonobarshift}
 Space between a punctum inclinatum and a no-bar (stemless) glyph one pitch
 below.
@@ -1552,20 +1657,48 @@
 Distance to place a ``rare'' sign above the top space in a score.
 \end{gdimension}
 
-\subsubsection*{Bar distances}
+\begin{gdimension}{parskip}
+The effective \verb=\parskip= inside of a score.
+\end{gdimension}
 
+\begin{gdimension}{lineskip}
+The effective \verb=\lineskip= inside of a score.
+\end{gdimension}
+
+\begin{gdimension}{baselineskip}
+The effective \verb=\baselineskip= inside of a score.
+\end{gdimension}
+
+\begin{gdimension}{lineskiplimit}
+The effective \verb=\lineskiplimit= inside of a score.
+\end{gdimension}
+
+\begin{gdimension}{shortspaceafterlineclef}
+Space after a clef at the beginning of a line, when the clef and first note are vertically distant.
+\end{gdimension}
+
+\subsubsection{Bar distances}
+
 \begin{gdimension}{bar at finalfinalis}
 This space is added before the final divisio final of a score (old bar spacing algorithm only).
 \end{gdimension}
 
-Spaces around bars when they are typeset inside a syllable:
+Spaces around bars when they are typeset inside a syllable. The \verb=@short= suffix for virgula
+and divisio minima indicates the space used when the notes surrounding the bar are strictly lower
+than \texttt{g} (in a four-line score).
 
 \begin{gdimension}{bar at virgula}
 \end{gdimension}
 
+\begin{gdimension}{bar at virgula@short}
+\end{gdimension}
+
 \begin{gdimension}{bar at minima}
 \end{gdimension}
 
+\begin{gdimension}{bar at minima@short}
+\end{gdimension}
+
 \begin{gdimension}{bar at minor}
 \end{gdimension}
 
@@ -1583,9 +1716,15 @@
 \begin{gdimension}{bar at virgula@standalone at text}
 \end{gdimension}
 
+\begin{gdimension}{bar at virgula@standalone at text@short}
+\end{gdimension}
+
 \begin{gdimension}{bar at minima@standalone at text}
 \end{gdimension}
 
+\begin{gdimension}{bar at minima@standalone at text@short}
+\end{gdimension}
+
 \begin{gdimension}{bar at minor@standalone at text}
 \end{gdimension}
 
@@ -1606,9 +1745,15 @@
 \begin{gdimension}{bar at virgula@standalone at notext}
 \end{gdimension}
 
+\begin{gdimension}{bar at virgula@standalone at notext@short}
+\end{gdimension}
+
 \begin{gdimension}{bar at minima@standalone at notext}
 \end{gdimension}
 
+\begin{gdimension}{bar at minima@standalone at notext@short}
+\end{gdimension}
+
 \begin{gdimension}{bar at minor@standalone at notext}
 \end{gdimension}
 
@@ -1682,89 +1827,79 @@
 Same as \texttt{maxbaroffsettextleft at eol} but when the center of the text goes right of the center of the bar.
 \end{gdimension}
 
+\begin{gdimension}{alterationadjustmentbar}
+In the case of an alteration after a bar, the alteration will go a bit left of this value. This can be compared to \texttt{moraadjustmentbar}.
+\end{gdimension}
 
 \subsection{Penalties}\label{penalties}
-Penalties are used by \TeX\ to determine where line and page breaks should occur.  Gregorio\TeX\ modifies or defines a few of its own to help with that process in scores.
+Penalties are used by \TeX\ to determine where line and page breaks should occur.  Gregorio\TeX\ modifies or defines a few of its own to help with that process in scores.  With the exception of \texttt{emergencystretch} (which should be changed using \verb=\grechangedim=) these should be changed using \verb=\grechangecount=, described above.
 
-\macroname{\textbackslash grebrokenpenalty}{}{gsp-default.tex}
+\begin{gcount}{brokenpenalty}
 The vertical penalty inserted after a break on a clef change.
+\end{gcount}
 
-Default: 0
-
-\macroname{\textbackslash greclubpenalty}{}{gsp-default.tex}
+\begin{gcount}{clubpenalty}
 The club penalty (determines how important it is to prevent orphans from occurring).
+\end{gcount}
 
-Default: 0
-
-\macroname{\textbackslash grewidowpenalty}{}{gsp-default.tex}
+\begin{gcount}{widowpenalty}
 The widow penalty (determines how important it is to prevent widows from occurring).
+\end{gcount}
 
-Default: 0
+\macroname{emergencystretch}{}{gsp-default.tex}
+The value of the last ditch stretch for overfull boxes.  This should be set using \verb=\grechangedim=.
 
-\macroname{\textbackslash greemergencystretch}{}{gsp-default.tex}
-The value of the last ditch stretch for overfull boxes.
-
 Default: \verb=\emergencystretch=
 
-\macroname{\textbackslash greendafterbarpenalty}{}{gsp-default.tex}
+\begin{gcount}{endafterbarpenalty}
 The end after bar penalty.
+\end{gcount}
 
-Default: $-200$
-
-\macroname{\textbackslash greendafterbaraltpenalty}{}{gsp-default.tex}
+\begin{gcount}{endafterbaraltpenalty}{}{gsp-default.tex}
 The alternate end after bar penalty (used when there is no text under the bar).
+\end{gcount}
 
-Default: $-200$
-
-\macroname{\textbackslash greendofelementpenalty}{}{gsp-default.tex}
+\begin{gcount}{endofelementpenalty}{}{gsp-default.tex}
 The end of element penalty.
+\end{gcount}
 
-Default: $-50$
-
-\macroname{\textbackslash greendofsyllablepenalty}{}{gsp-default.tex}
+\begin{gcount}{endofsyllablepenalty}{}{gsp-default.tex}
 The end of element penalty.
+\end{gcount}
 
-Default: $-50$
-
-\macroname{\textbackslash greendofwordpenalty}{}{gsp-default.tex}
+\begin{gcount}{endofwordpenalty}{}{gsp-default.tex}
 The end of element penalty.
+\end{gcount}
 
-Default: $-100$
-
-\macroname{\textbackslash grehyphenpenalty}{}{gsp-default.tex}
+\begin{gcount}{hyphenpenalty}{}{gsp-default.tex}
 The hyphen penalty.
+\end{gcount}
 
-Default: $-200$
-
-\macroname{\textbackslash grenobreakpenalty}{}{gsp-default.tex}
+\begin{gcount}{nobreakpenalty}{}{gsp-default.tex}
 Penalty to prevent a line break.
+\end{gcount}
 
-Default: 10001
-
-\macroname{\textbackslash grenewlinepenalty}{}{gsp-default.tex}
+\begin{gcount}{newlinepenalty}
 Penalty to force a line break.
+\end{gcount}
 
-Default: $-10001$
-
-\macroname{\textbackslash grefinalpenalty}{}{gsp-default.tex}
+\begin{gcount}{finalpenalty}
 The penalty applied after the final element of a score.
+\end{gcount}
 
-Default: $0$
-
-\macroname{\textbackslash grelooseness}{}{gsp-default.tex}
+\macroname{looseness}{}{gsp-default.tex}
 The \TeX\ looseness within a score.
 
 Default: \verb=\looseness=
 
-\macroname{\textbackslash gretolerance}{}{gsp-default.tex}
+\begin{gcount}{tolerance}
 The \TeX\ tolerance within a score.  See \url{https://en.wikibooks.org/wiki/TeX/tolerance} for an explanation of what tolerance is.
+\end{gcount}
 
-Default: 9000
-
-\macroname{\textbackslash grepretolerance}{}{gsp-default.tex}
+\macroname{pretolerance}{}{gsp-default.tex}
 The \TeX\ pretolerance within a score.  See \url{https://en.wikibooks.org/wiki/TeX/pretolerance} for an explanation of what pretolerance is.
 
-Default: $-1$ (Lua\TeX\ versions prior to 0.80) or \verb=\pretolerance= (versions after, and including, 0.80)
+Default: $-1$ (Lua\TeX\ versions prior to 0.80) or \verb=\pretolerance= (versions after, and including, 0.80)]
 
 \textit{Nota bene:} For more details on why this is necessary see the comments in gsp-default.tex.
 
@@ -1773,11 +1908,8 @@
 
 
 \subsection{Colors}\label{colors}
-Colors are strictly a \LaTeX\ phenomena as currently implemented.  All
-commands which change a color will raise a warning in Plain \TeX, but will not alter the document.
-
 All colors can be redefined using \verb=\definecolor=.  See the
-\verb=xcolor= package for documentation.
+\verb=xcolor= (\LaTeX) or \verb=color= (Plain\TeX) package for documentation.
 
 Example:\par\medskip
 \begin{latexcode}

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_gregorio.tex
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_gregorio.tex	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_gregorio.tex	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,23 @@
 % !TEX root = GregorioRef.tex
 % !TEX program = LuaLaTeX+se
+%
+% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
+%
+% This file is part of Gregorio.
+%
+% Gregorio 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 3 of the License, or
+% (at your option) any later version.
+%
+% Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+%
 \section{Gregorio Controls}
 
 These functions are the ones written by gregorio to the gtex file.
@@ -61,7 +79,7 @@
 	\#3 & integer & Set horizontal episema (0), horizontal episema under a note (1), line at top of staff (2), line at bottom of staff (3), choral sign (4).\\
 \end{argtable}
 
-\macroname{\textbackslash GreAdHocSpaceEndOfElement}{\#1\#2}{gregoriotex-main.tex}
+\macroname{\textbackslash GreAdHocSpaceEndOfElement}{\#1\#2\#3}{gregoriotex-main.tex}
 Macro to end an element with an ad-hoc space.
 
 \begin{argtable}
@@ -68,6 +86,7 @@
 	\#1 & float & The factor to scale the default space for use as an ad-hoc space.\\
 	\#2 & \texttt{0} & Space is breakable.\\
 	& \texttt{1} & Space is unbreakable.\\
+	\#3 & integer & The number of notes in the syllable prior to this macro.\\
 \end{argtable}
 
 \macroname{\textbackslash GreAugmentumDuplex}{\#1\#2\#3}{gregoriotex-signs.tex}
@@ -175,7 +194,10 @@
 
 \begin{argtable}
 	\#1 & integer & Height number of custos.\\
-	\#2 & integer & Indicate if the custo is the last of the score.\\
+	\#2 & \texttt{Flat} & The custos should have a flat.\\
+			& \texttt{Natural} & The custos should have a natural.\\
+			& \texttt{Sharp} & The custos should have a sharp.\\
+			& \textit{empty} & The custos should not have an alteration.\\
 \end{argtable}
 
 \macroname{\textbackslash GreDagger}{}{gregoriotex-symbols.tex}
@@ -208,7 +230,7 @@
 	\#2 & \TeX\ code & Macros which may happen before the skip but after the divisio maior (typically \verb=\grevepisema=).\\
 \end{argtable}
 
-\macroname{\textbackslash GreDivisioMinima}{\#1\#2}{gregoriotex-signs.tex}
+\macroname{\textbackslash GreDivisioMinima}{\#1\#2\#3}{gregoriotex-signs.tex}
 Macro to typeset a divisio minima.
 
 \begin{argtable}
@@ -215,6 +237,8 @@
 	\#1 & \texttt{0} & There is no text under the bar.\\
 	& \texttt{1} & There is text under the bar.\\
 	\#2 & \TeX\ code & Macros which may happen before the skip but after the divisio minima (typically \verb=\grevepisema=).\\
+	\#3 & \texttt{0} & The notes around the bar are vertically close to the bar.\\
+	& \texttt{1} & The notes around the bar are far, \verb=@short= versions of spaces will be used.\\
 \end{argtable}
 
 \macroname{\textbackslash GreDivisioMinor}{\#1\#2}{gregoriotex-signs.tex}
@@ -273,7 +297,7 @@
 	& \texttt{3} & before bar
 \end{argtable}
 
-\macroname{\textbackslash GreEndOfElement}{\#1\#2}{gregoriotex-main.tex}
+\macroname{\textbackslash GreEndOfElement}{\#1\#2\#3}{gregoriotex-main.tex}
 Macro to end elements.
 
 \begin{argtable}
@@ -284,6 +308,7 @@
 	& \texttt{4} & Ad-hoc space.\\
 	\#2 & \texttt{0} & Space is breakable.\\
 	& \texttt{1} & Space is unbreakable.\\
+	\#3 & integer & The number of notes in the syllable prior to this macro.\\
 \end{argtable}
 
 \macroname{\textbackslash GreEndNLBArea}{\#1\#2}{gregoriotex-main.tex}
@@ -327,11 +352,15 @@
 	& \texttt{22} & Half-space. \\
 \end{argtable}
 
-\macroname{\textbackslash GreFinalCustos}{\#1}{gregoriotex-signs.tex}
+\macroname{\textbackslash GreFinalCustos}{\#1\#2}{gregoriotex-signs.tex}
 Typesets a custos after the final bar in a score.
 
 \begin{argtable}
 	\#1 & integer & Height number of custos.\\
+	\#2 & \texttt{Flat} & The custos should have a flat.\\
+			& \texttt{Natural} & The custos should have a natural.\\
+			& \texttt{Sharp} & The custos should have a sharp.\\
+			& \textit{empty} & The custos should not have an alteration.\\
 \end{argtable}
 
 \macroname{\textbackslash GreFinalDivisioFinalis}{\#1}{gregoriotex-signs.tex}
@@ -415,7 +444,7 @@
 \begin{argtable}
 	\#1 & character & the character that it must call\\
 	\#2 & integer & The number for where the glyph is located.  \texttt{a} in gabc is 1, \texttt{b} is 2, \etc\\
-	\#3 & integer & height number of the next note\\
+	\#3 & \TeX\ code & code to set the next custos (using \verb=\GreNextCustos=)\\
 	\#4 & \texttt{0} & One-note glyph or more than two notes glyph except porrectus: \ie,  we must put the aligncenter in the middle of the first note\\
 	& \texttt{1} & Two notes glyph (podatus is considered as a one-note glyph): \ie, we put the aligncenter in the middle of the glyph\\
 	& \texttt{2} & Porrectus: has a special align center.\\
@@ -532,7 +561,7 @@
 \macroname{\textbackslash GreInDivisioMaior}{\#1\#2}{gregoriotex-signs.tex}
 Same as \verb=\GreDivisioMaior= except inside a syllable.
 
-\macroname{\textbackslash GreInDivisioMinima}{\#1\#2}{gregoriotex-signs.tex}
+\macroname{\textbackslash GreInDivisioMinima}{\#1\#2\#3}{gregoriotex-signs.tex}
 Same as \verb=\GreDivisioMinima= except inside a syllable.
 
 \macroname{\textbackslash GreInDivisioMinor}{\#1\#2}{gregoriotex-signs.tex}
@@ -541,7 +570,7 @@
 \macroname{\textbackslash GreInDominica}{\#1\#2\#3}{gregoriotex-signs.tex}
 Same as \verb=\GreDominica= except inside a syllable.
 
-\macroname{\textbackslash GreInVirgula}{\#1\#2}{gregoriotex-signs.tex}
+\macroname{\textbackslash GreInVirgula}{\#1\#2\#3}{gregoriotex-signs.tex}
 Same as \verb=\GreVirgula= except inside a syllable.
 
 \macroname{\textbackslash GreItalic}{\#1}{gregoriotex.sty or gregoriotex.tex}
@@ -630,12 +659,19 @@
 \macroname{\textbackslash GreNewParLine}{}{gregoriotex-main.tex}
 Same as \verb=\GreNewLine= except line is not justified.
 
-\macroname{\textbackslash GreNextCustos}{\#1}{gregoriotex-signs.tex}
+\macroname{\textbackslash GreFinalNewLine}{}{gregoriotex-main.tex}
+Handles a new line after the final bar.  This currently just advances \verb=\gre at knownline= in order to prevent a potential error message with a two-line initial on a two-line score.
+
+\macroname{\textbackslash GreNextCustos}{\#1\#2}{gregoriotex-signs.tex}
 Sets the pitch to use for the next custos if it were to happen at the point
 where this macro is called.
 
 \begin{argtable}
 	\#1 & integer & Height number of the custos.\\
+	\#2 & \texttt{Flat} & The custos should have a flat.\\
+			& \texttt{Natural} & The custos should have a natural.\\
+			& \texttt{Sharp} & The custos should have a sharp.\\
+			& \textit{empty} & The custos should not have an alteration.\\
 \end{argtable}
 
 \macroname{\textbackslash GreNextSyllableBeginsEUOUAE}{\#1\#2}{gregoriotex-syllable.tex}
@@ -647,8 +683,8 @@
 			& \texttt{1} & There is a line break between this syllable and the beginning of the EUOUAE block.\\
 \end{argtable}
 
-\macroname{\textbackslash GreOriscusCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
-Macro to typeset an oriscus cavum (the oriscus points at a higher note).
+\macroname{\textbackslash GreAscendensOriscusCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
+Macro to typeset an ascending oriscus cavum (the oriscus points at a higher note).
 
 \begin{argtable}
 	\#1 & length  & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
@@ -659,8 +695,8 @@
 	\#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
 \end{argtable}
 
-\macroname{\textbackslash GreOriscusCavumAuctus}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
-Macro to typeset a reverse oriscus cavum (the oriscus points at a lower note).
+\macroname{\textbackslash GreDescendensOriscusCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
+Macro to typeset a descending oriscus cavum (the oriscus points at a lower note).
 
 \begin{argtable}
 	\#1 & length  & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
@@ -839,7 +875,7 @@
 	\#1 & character & The initial letter of the score.\\
 \end{argtable}
 
-\macroname{\textbackslash GreSetInitialClef}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
+\macroname{\textbackslash GreSetInitialClef}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-signs.tex}
 Macro for writing initial clef.
 
 \begin{argtable}
@@ -849,6 +885,7 @@
 	\#4 & \texttt{c} or \texttt{f} & Type of secondary clef.\\
 	\#5 & \texttt{0}--\texttt{5} & Line of secondary clef (\texttt{0} for no secondary clef).\\
 	\#6 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\
+	\#7 & integer & \texttt{0} if clef and first note are far enough to use a shorter space, 1 otherwise.\\
 \end{argtable}
 
 \macroname{\textbackslash GreSetLinesClef}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-main.tex}
@@ -865,6 +902,14 @@
 	\#7 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\
 \end{argtable}
 
+\macroname{\textbackslash GreSetNabcAboveLines}{\#1}{gregoriotex-main.tex}
+Macro to place argument containing Nabc neumes above the lines and empty
+\verb=\gre at currenttextabovelines= when done.
+
+\begin{argtable}
+	\#1 & string & Nabc neumes to be placed above the lines.\\
+\end{argtable}
+
 \macroname{\textbackslash GreSetNextSyllable}{\#1\#2\#3}{gregoriotex-syllable.tex}
 Macro to set the text of the next syllable for spacing purposes.
 
@@ -963,6 +1008,13 @@
 	\#9 & Gregorio\TeX\ glyphs & all the notes
 \end{argtable}
 
+\macroname{\textbackslash GreSyllableNoteCount}{\#1}{gregoriotex-syllable.tex}
+Indicates the number of notes in the current syllable.
+
+\begin{argtable}
+	\#1 & integer & The number of notes in the current syllable.\\
+\end{argtable}
+
 \macroname{\textbackslash GreTranslationCenterEnd}{}{gregoriotex-main.tex}
 Macro to end the centering of the translation text.
 
@@ -1035,7 +1087,7 @@
 	\#2 & string  & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
 \end{argtable}
 
-\macroname{\textbackslash GreVirgula}{\#1\#2}{gregoriotex-signs.tex}
+\macroname{\textbackslash GreVirgula}{\#1\#2\#3}{gregoriotex-signs.tex}
 Macro to typeset a virgula.
 
 \begin{argtable}
@@ -1042,6 +1094,8 @@
 	\#1 & \texttt{0} & There is no text under the bar.\\
 	& \texttt{1} & There is text under the bar.\\
 	\#2 & code & Macros which may happen before the skip but after the virgula (typically \verb=\grevepisema=).\\
+	\#3 & \texttt{0} & The notes around the bar are vertically close to the bar.\\
+	& \texttt{1} & The notes around the bar are far, \verb=@short= versions of spaces will be used.\\
 \end{argtable}
 
 \macroname{\textbackslash GreWriteTranslation}{\#1}{gregoriotex-main.tex}

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_internal.tex
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_internal.tex	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/Command_Index_internal.tex	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,23 @@
 % !TEX root = GregorioRef.tex
 % !TEX program = LuaLaTeX+se
+%
+% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
+%
+% This file is part of Gregorio.
+%
+% Gregorio 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 3 of the License, or
+% (at your option) any later version.
+%
+% Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+%
 \section{Gregorio\TeX{} Controls}
 
 These functions are the ones used by Gregorio\TeX{} internally as it
@@ -48,6 +66,11 @@
 	\#2 & string & name of the correct macro to use\\
 \end{argtable}
 
+\macroname{\textbackslash gre at allowdeprecated@asboolean}{}{gregoriotex-main.tex}
+Macro that evaluates \texttt{true} or \texttt{false} depending on whether
+deprecated usage is allowed.  This is used to pass the value of
+\verb=\ifgre at allowdeprecated= to Lua.
+
 \macroname{\textbackslash gre at loadgregoriofont}{}{gregoriotex-main.tex}
 Loads the chosen font for the neumes at the correct size.
 
@@ -73,13 +96,14 @@
 	& \texttt{1} & there is above lines text
  \end{argtable}
 
-\macroname{\textbackslash gre at calculate@textaligncenter}{\#1\#2\#3}{gregoriotex-spaces.tex}
+\macroname{\textbackslash gre at calculate@textaligncenter}{\#1\#2\#3\#4}{gregoriotex-spaces.tex}
 Macro for calculating \verb=\gre at textaligncenter=.
 
 \begin{argtable}
-	\#1 & string & The first part of the syllable (any preceding consonants in Latin).\\
-	\#2 & string & The middle part of the syllable (the vowel in Latin, the whole syllable in English).\\
-	\#3 & \texttt{0} & Calculation is being performed for the current syllable.\\
+	\#1 & string & The carry-over letters from the previous syllable that should be moved to the current.\\
+	\#2 & string & The first part of the syllable (any preceding consonants in Latin).\\
+	\#3 & string & The middle part of the syllable (the vowel in Latin, the whole syllable in English).\\
+	\#4 & \texttt{0} & Calculation is being performed for the current syllable.\\
 	& \texttt{1} & Calculation is being performed for the next syllable.\\
 \end{argtable}
 
@@ -189,14 +213,15 @@
 	\#2 & integer & the factor the distances are to be put into\\
 \end{argtable}
 
-\macroname{\textbackslash gre at calculate@nextbegindifference}{\#1\#2\#3\#4}{gregoriotex-spaces.tex}
+\macroname{\textbackslash gre at calculate@nextbegindifference}{\#1\#2\#3\#4\#5}{gregoriotex-spaces.tex}
 Macro to calculate \texttt{nextbegindifference}.
 
 \begin{argtable}
-	\#1 & string & the first letters of the next syllable\\
-	\#2 & string & the middle letters of the next syllable (the vowel in Latin, the whole syllable in English)\\
-	\#3 & string & the end letters of the next syllable\\
-	\#4 & $0 \le$ integer $\le 19$ & the type of notes alignment.  See \nameref{notesalign}.\\
+	\#1 & string & the carry-over letters for the next syllable\\
+	\#2 & string & the first letters of the next syllable\\
+	\#3 & string & the middle letters of the next syllable (the vowel in Latin, the whole syllable in English)\\
+	\#4 & string & the end letters of the next syllable\\
+	\#5 & $0 \le$ integer $\le 19$ & the type of notes alignment.  See \nameref{notesalign}.\\
 	& $20 \le$ integer $\le 39$ & Same as below 20 except there is a flat before the notes.  Subtract 20 to get the type of notes alignment.\\
 	& $40 \le$ integer $\le 59$ & Same as below 20 except there is a natural before the notes.  Subtract 40 to get the type of notes alignment.
 \end{argtable}
@@ -393,6 +418,13 @@
 	\#1 & \TeX{} code & the \TeX{} code to use if running under \LaTeX{}.
 \end{argtable}
 
+\macroname{\textbackslash gre at ifnotlatex}{\#1}{gregoriotex.sty \textup{and} gregoriotex.tex}
+Evaluates to \verb=#1= if not running under \LaTeX{}.
+
+\begin{argtable}
+	\#1 & \TeX{} code & the \TeX{} code to use if not running under \LaTeX{}.
+\end{argtable}
+
 \macroname{\textbackslash gre at latex@barredsymbol}{\#1\#2\#3\#4}{gregoriotex-signs.tex}
 Internal method used by \verb=\grelatexsimpledefarredsymbol= to simplify
 the cascading of conditionals used to implement that macro.
@@ -425,9 +457,23 @@
 	\#1 & integer & height of the custos character to be placed\\
 \end{argtable}
 
-\macroname{\textbackslash gre at nextcustos}{}{gregoriotex-signs.tex}
-Macro that saves the next custos height.
+\macroname{\textbackslash gre at nextcustospitch}{}{gregoriotex-signs.tex}
+Macro that saves the next custos pitch (height).
 
+\macroname{\textbackslash gre at nextcustosalteration}{}{gregoriotex-signs.tex}
+Macro that saves the next custos alteration.
+
+\macroname{\textbackslash gre at custosalteration}{\#1\#2}{gregoriotex-signs.tex}
+Typesets the alteration for a custos, if enabled.
+
+\begin{argtable}
+	\#1 & integer & The pitch (height number) of the custos.\\
+	\#2 & \texttt{Flat} & The custos should have a flat.\\
+			& \texttt{Natural} & The custos should have a natural.\\
+			& \texttt{Sharp} & The custos should have a sharp.\\
+			& \textit{empty} & The custos should not have an alteration.\\
+\end{argtable}
+
 \macroname{\textbackslash gre at beginnotes}{}{gregoriotex-main.tex}
 Macro to draw the staff lines.  Comes after the initial but before the clef.
 
@@ -493,9 +539,15 @@
 \macroname{\textbackslash gre at currenttextabovelines}{}{gregoriotex-main.tex}
 Macro for storing the text which needs to be placed above the lines.
 
-\macroname{\textbackslash gre at typesettextabovelines}{\#1}{gregoriotex-main.tex}
-Macro for typesetting the text above the lines.
+\macroname{\textbackslash gre at typesettextabovelines}{\#1\#2}{gregoriotex-main.tex}
+Macro for typesetting the text or nabc neumes above the lines.
 
+\begin{argtable}
+	\#1 & string & Text to be typeset\\
+	\#2 & \texttt{0} & Use alt text above the lines vertical spacing\\
+	& \texttt{1} & Use nabc neumes above the lines vertical spacing\\
+\end{argtable}
+
 \macroname{\textbackslash gre at dotranslationcenterend}{}{gregoriotex-main.tex}
 Macro to typeset a centered translation.
 
@@ -547,6 +599,9 @@
 	& \texttt{0} & otherwise\\
 \end{argtable}
 
+\macroname{\textbackslash gre at endofglyphcommon}{}{gregoriotex-syllable.tex}
+Macro called at the end of every glyph.  Checks to see if glyph being ended is the last of the score and does some clean-up if it is.
+
 \macroname{\textbackslash gre at setfirstsyllabletext}{\#1\#2\#3\#4\#5\#6}{gregoriotex-syllable.tex}
 Internal macro to set the first syllable text after all parts are known.
 
@@ -736,7 +791,7 @@
 	\#6 & integer & if \texttt{3}, it means that we must not put a flat after the secondary clef, otherwise it’s the height of the flat\\
 \end{argtable}
 
-\macroname{\textbackslash gre at typeclef}{\#1\#2\#3\#4\#5\#6\#7\#8}{gregoriotex-signs.tex}
+\macroname{\textbackslash gre at typeclef}{\#1\#2\#3\#4\#5\#6\#7\#8\#9}{gregoriotex-signs.tex}
 Macro which typesets the clef.
 
 \begin{argtable}
@@ -745,7 +800,8 @@
 	\#3 & \texttt{0} & no need to use small clef characters (inside a line)\\
 	& \texttt{1} & we must use small clef characters (inside a line)\\
 	\#4 & \texttt{0} & no extra space is needed after the clef\\
-	& \texttt{}1 & we must type a space after the clef\\
+	& \texttt{1} & we must type a normal space after the clef\\
+	& \texttt{2} & we must type a short space after the clef\\
 	\#5 & integer & if \texttt{3}, it means that we must not put a flat after the clef, otherwise it’s the height of the flat\\
 	\#6 & character & the type of the secondary clef: c or f\\
 	\#7 & integer & the line of the secondary clef (1 is the lowest, 0 for no secondary clef)\\
@@ -778,7 +834,7 @@
 \macroname{\textbackslash gre at widthof}{\#1}{gregoriotex-main.tex}
 Macro for calculating the width of its argument and storing it in \verb=\gre at dimen@temp at three=.
 
-\macroname{\textbackslash gre at writebar}{\#1\#2\#3\#4}{gregoriotex-signs.tex}
+\macroname{\textbackslash gre at writebar}{\#1\#2\#3\#4\#5}{gregoriotex-signs.tex}
 Macro to write a bar.
 
 \begin{argtable}
@@ -793,6 +849,8 @@
 	\#3 & \texttt{0} & if there is no text underneath the bar\\
 	& \texttt{1} & if there is text underneath the bar\\
 	\#4 & \TeX\ code & macros that may happen before the skip after the bar (typically GreVEpisema)\\
+	\#5 & \texttt{0} & The notes around the bar are vertically close to the bar.\\
+	& \texttt{1} & The notes around the bar are far, \verb=@short= versions of spaces will be used.\\
 \end{argtable}
 
 \macroname{\textbackslash gre@@arg}{}{gregoriotex-syllable.tex}
@@ -984,6 +1042,56 @@
 	\#1 & string & The syllable (usually built as \verb=\gre at nextfirstsyllablepart\gre at nextmiddlesyllablepart\gre at nextendsyllablepart=\\
 \end{argtable}
 
+\macroname{\textbackslash gre at if@rewritesyllable}{\#1\#2}{gregoriotex-syllable.tex}
+Performs \#1 if the syllable should be rewritten, else \#2.
+
+\begin{argtable}
+	\#1 & \TeX\ code & Code to perform when rewriting the syllable\\
+	\#2 & \TeX\ code & Code to perform when \emph{not} rewriting the syllable\\
+\end{argtable}
+
+\macroname{\textbackslash gre at save@endsyllablepart}{}{gregoriotex-syllable.tex}
+Control sequence aliased to the carry-over syllable part to be moved to the next syllable.
+
+\macroname{\textbackslash gre at save@fixedtextformat}{\#1}{gregoriotex-syllable.tex}
+Control sequence aliased to the fixed text format for the carry-over syllable part to be moved to the next syllable.
+
+\begin{argtable}
+	\#1 & string & The carry-over syllable part, as with \verb=\gre at fixednexttextformat=\\
+\end{argtable}
+
+\macroname{\textbackslash gre at save@pointandclick}{}{gregoriotex-syllable.tex}
+Control sequence aliased to the line:char:column of the point-and-click link for the carry-over syllable part to be moved to the next syllable\\
+
+\macroname{\textbackslash gre at push@endsyllable}{\#1}{gregoriotex-syllable.tex}
+Sets the save aliases to push the end-syllable part of the current syllable to the next syllable if necessary.
+
+\begin{argtable}
+	\#1 & link target & line:char:column for the link to use for the pushed syllable part\\
+\end{argtable}
+
+\macroname{\textbackslash gre at emit@syllabletext}{\#1}{gregoriotex-syllable.tex}
+Emits the text for the syllable, prepending the carry-over syllable part if necessary and consolidating the fixed text styles if possible.
+
+\begin{argtable}
+	\#1 & \TeX\ code & Code that emits the syllable text\\
+\end{argtable}
+
+\macroname{\textbackslash gre at emit@endsyllablepart}{}{gregoriotex-syllable.tex}
+Emits the text for the end syllable part if it \emph{is not} to be moved to the next syllable.
+
+\macroname{\textbackslash gre at emit@endsyllablepartfornextsyllable}{}{gregoriotex-syllable.tex}
+Emits the text for the end syllable part if it \emph{is} to be moved to the next syllable.  This is used when projecting the next syllable text while processing some syllable.
+
+\macroname{\textbackslash gre at syllable@args}{}{gregoriotex-syllable.tex}
+Saves the arguments to \verb=\GreSyllable=.  Needed so that \verb=\GreSyllable= can look forward to see if the next token is \verb=\GreBarSyllable=.
+
+\macroname{\textbackslash gre at syllable@expand}{}{gregoriotex-syllable.tex}
+Calls \verb=\gre at syllable@act=, passing the arguments saved in \verb=gre at syllable@args=.  Needed so that \verb=\GreSyllable= can look forward to see if the next token is \verb=\GreBarSyllable=.
+
+\macroname{\textbackslash gre at syllable@act}{\#1\#2\#3\#4\#5\#6\#7\#8\#9}{gregoriotex-syllable.tex}
+Typesets the syllable.  Same arguments as \verb=\GreSyllable=.  See the description of that macro for more information.  Needed so that \verb=\GreSyllable= can look forward to see if the next token is \verb=\GreBarSyllable=.
+
 \macroname{\textbackslash gre at gabcname}{}{gregoriotex-main.tex}
 Macro which holds the point-and-click file name.
 
@@ -990,7 +1098,7 @@
 \macroname{\textbackslash gre at gregoriotexluaversion}{}{gregoriotex-main.tex}
 Macro to hold the version number of \emph{gregoriotex.lua} so that it can be checked for consistency.
 
-\macroname{\textbackslash gre at gregorioversion}{}{gregoriotex-main.tex}
+\macroname{\textbackslash gre at gregoriotexversion}{}{gregoriotex-main.tex}
 Macro to hold the version number of Gregorio\TeX\ so that it can be checked for consistency.
 
 \macroname{\textbackslash gre at leftfill}{}{gregoriotex-main.tex}
@@ -1050,6 +1158,9 @@
 \macroname{\textbackslash gre at pitch@dummy}{}{gregoriotex-main.tex}
 A meaningless (don't-care) pitch.
 
+\macroname{\textbackslash gre at pitch@nominal}{}{gregoriotex-main.tex}
+A pitch guaranteed to be in the staff.
+
 \macroname{\textbackslash gre at pointandclick}{\#1\#2}{gregoriotex-main.tex}
 Macro to generate the point-and-click links.
 
@@ -1059,8 +1170,11 @@
 \end{argtable}
 
 \macroname{\textbackslash gre at prefix}{}{gregoriotex-spaces.tex}
-Either ``skip’’ or ``dimen’’ according to the distance being set or changed at the given moment.
+Either \texttt{skip} or \texttt{dimen} according to the distance being set or changed at the given moment.
 
+\macroname{\textbackslash gre at prefixII}{}{gregoriotex-spaces.tex}
+Same as \verb=\gre at prefix=.  Used when we were dealing with two distances simultaneously.
+
 \macroname{\textbackslash gre at rubberpermit}{\#1}{gregoriotex-spaces.tex}
 Determines whether the given distance is allowed to take a rubber length.
 
@@ -1114,8 +1228,13 @@
 Alias for \verb=\resizebox=.
 
 \macroname{\textbackslash gre at dimension}{}{gregoriotex-spaces.tex}
-Workhorse function behind \verb=\grecreatedim= and \verb=\grechangedim=.
+Workhorse function for setting distances in \verb=\grecreatedim= and \verb=\grechangedim=.
 
+\macroname{\textbackslash gre at changedimforline}{\#1\#2\#3}{gregoriotex-spaces.tex}
+Saves the current value of the dimension and then changes it.  The arguments
+are the same as \verb=\grechangedim=.  Used to temporarily change the dimension
+for a given line, which is restored at the next beginning of the next line.
+
 \macroname{\textbackslash gre at setstafflines}{\#1}{gregoriotex-main.tex}
 Sets the number of staff lines.
 
@@ -1140,12 +1259,16 @@
 	\#1 & integer & The number to typeset\\
 \end{argtable}
 
-\macroname{\textbackslash gre at bar@space at suffix}{\#1\#2}{gregoriotex-symbols.tex}
+\macroname{\textbackslash gre at bar@space at suffix}{\#1\#2\#3}{gregoriotex-symbols.tex}
 Macro used to select the corresct suffix of the \verb=bar at x= spaces.
 
 \begin{argtable}
 	\#1 & \texttt{0} & emits nothing\\
-	& \texttt{1} emits \texttt{text}\\
+	& \texttt{1} emits \verb=@standalone=\\
+	\#2 & \texttt{0} & emits \verb=@notext= (only if standalone)\\
+	& \texttt{1} emits \verb=@text= (only if standalone)\\
+	\#3 & \texttt{0} & emits nothing\\
+	& \texttt{1} emits \verb=@short=\\
 \end{argtable}
 
 \macroname{\textbackslash gre at drawadditionalline}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
@@ -1216,7 +1339,13 @@
 	& 0 & other cases\\
 \end{argtable}
 
+\macroname{\textbackslash gre at alterationadjustment}{\#1}{gregoriotex-spaces.tex}
+Macro to make adjustments to \verb=nextbegindifference= in order to account for an alteration at the begining of the next syllable.
 
+\macroname{\textbackslash gre at punctummoraadjustment}{}{gregoriotex-spaces.tex}
+Macro to make adjustments to cursor position and \verb=previousenddifference= based on the presence of a punctum mora at the end of the last syllable.
+
+
 \subsection{Auxiliary File}
 Gregorio\TeX\ creates its own auxiliary file (extension \texttt{gaux}) which it uses to store information between successive typesetting runs.  This allows for such features as the dynamic interline spacing.  The following functions are used to interact with that auxiliary file.
 
@@ -1378,8 +1507,16 @@
 \macroname{\textbackslash gre at char@he at ...}{\#1}{gregoriotex-chars.tex}
 A class of macros for the horizontal episema which populates the \verb=\gre at box@hep= box.
 
+\macroname{\textbackslash gre at nabccharno}{\#1\#2\#3}{gregoriotex-nabc.tex}
+Prints the nabc glyphs for the given nabc string.
 
+\begin{argtable}
+	\#1 & string & nabc code representing the character\\
+	\#2 & string & name of nabc font to use\\
+	\#3 & integer & scaling factor\\
+\end{argtable}
 
+
 \subsection{Flags}
 
 Flags are either boolean (defined with \verb=\newif=), Lua\TeX\ attributes, or counts (defined with \verb=\newcount=).  They store settings and/or the current state of something so that Gregorio\TeX\ can typeset things in the desired manner.
@@ -1458,6 +1595,9 @@
 \macroname{\textbackslash ifgre at firstglyph}{}{gregoriotex-syllable.tex}
 Boolean that tells us if the current glyph is the first glyph or not.
 
+\macroname{\textbackslash ifgre at rewritesyllables}{}{gregoriotex-syllable.tex}
+Boolean that enables moving the last part of a syllable to the next if there is no hyphen.
+
 \macroname{\textbackslash gre at attr@dash}{}{gregoriotex-main.tex}
 A Lua\TeX\ attribute which indicates whether a syllable takes a dash if it ends a line.
 
@@ -1473,6 +1613,9 @@
 \macroname{\textbackslash gre at attr@glyph at bottom}{}{gregoriotex-main.tex}
 A Lua\TeX\ attribute which identifies the low point of the glyph.  Used for dynamic line spacing.
 
+\macroname{\textbackslash gre at attr@syllable at id}{}{gregoriotex-main.tex}
+A Lua\TeX\ attribute which identifies one syllable from the next.  Used to position the text after the center of a syllable on the next syllable if the text flows properly, in order to improve ligaturing.
+
 \macroname{\textbackslash gre at clivisalignment}{}{gregoriotex-syllable.tex}
 Count to indicate how the clivis is to be aligned with its respective syllable text.  Values: \texttt{0}) always align clivis on its center; \texttt{1}) align clivis on first punctum; \texttt{2}) align clivis on its center, except if notes would go left of text or consonants after vowels are larger than \verb=\gre at dimen@clivisalignmentmin=.
 
@@ -1521,12 +1664,18 @@
 \macroname{\textbackslash gre at variableheightexpansion}{}{gregoriotex-main.tex}
 Count to indicated if the spacing between lines should be variable (\texttt{1}) or fixed (\texttt{0}).  Not a boolean because it needs to be readable by Lua.
 
+\macroname{\textbackslash ifgre at usecustosalteration}{}{gregoriotex-signs.tex}
+Boolean which indicates whether alterations should be printed for custodes.
+
 \macroname{\textbackslash ifgre at blockeolcustos}{}{gregoriotex-main.tex}
 Boolean which indicates whether the custos at the end of the line should be blocked.
 
 \macroname{\textbackslash ifgre at blockeolcustosbeforeeuouae}{}{gregoriotex-main.tex}
 Boolean which indicates whether the custos at the end of the line should be blocked if a EUOUAE block immediately follows.
+\macroname{\textbackslash ifgre at blockeolcustos}{}{gregoriotex-main.tex}
+Boolean which indicates whether the custos at the end of the line should be blocked.
 
+
 \macroname{\textbackslash ifgre at raggedbreakbeforeeuouae}{}{gregoriotex-main.tex}
 Boolean which indicates whether an automatic line break immediately before a EUOUAE block should be ragged.
 
@@ -1619,7 +1768,36 @@
 \macroname{\textbackslash ifgre at nextforcedcentering}{}{gregoriotex-syllable.tex}
 Boolean indicating that the next syllable had a forced center in the gabc which is to be respected.
 
+\macroname{\textbackslash ifgre at unbreakableendofelement}{}{gregoriotex-main.tex}
+Boolean used by \verb=\GreEndOfElement= to store whether the line may be broken at that point.
 
+\macroname{\textbackslash gre at count@syllablenotes}{}{gregoriotex-syllable.tex}
+Count containing the number of notes in the syllable.
+
+\macroname{\textbackslash gre at count@unbreakabletotalnotes}{}{gregoriotex-syllable.tex}
+Count containing the minimum number of notes in the syllable before the syllable
+may be broken across lines.
+
+\macroname{\textbackslash gre at count@unbreakableinitialnotes}{}{gregoriotex-syllable.tex}
+Count containing the minimum number of notes at the start of a syllable that
+must be kept together when the syllable is broken across lines.
+
+\macroname{\textbackslash gre at count@unbreakablefinalnotes}{}{gregoriotex-syllable.tex}
+Count containing the minimum number of notes at the end of a syllable that must
+be kept together when the syllable is broken across lines.
+
+\macroname{\textbackslash ifgre at shownotes}{}{gregoriotex-syllable.tex}
+Boolean indicating whether the notes should be shown.
+
+\macroname{\textbackslash ifgre at showlyrics}{}{gregoriotex-syllable.tex}
+Boolean indicating whether the lyrics should be shown.
+
+\macroname{\textbackslash gre at initiallines}{}{gregoriotex-syllable.tex}
+Number of lines the initial takes up.  Currently limited to 0, 1, or 2.  Not currently a count, but will be changed to one in 5.0.
+
+\macroname{\textbackslash ifgre at rewritethissyllable}{}{gregoriotex-syllable.tex}
+Boolean indicating that a syllable should be rewritten to improve ligature rendering.
+
 \subsection{Boxes}
 
 Boxes are used to store elements of the score before they are printed for the purposes of reusing them and/or measuring them in order to determine their appropriate placement.
@@ -1711,6 +1889,9 @@
 \macroname{\textbackslash gre at dimen@additionaltopspacealt}{}{gregoriotex-spaces.tex}
 Dimension representing extra space above the staff needed for above lines text.
 
+\macroname{\textbackslash gre at dimen@additionaltopspacenabc}{}{gregoriotex-spaces.tex}
+Dimension representing extra space above the staff needed for nabc notation.
+
 \macroname{\textbackslash gre at dimen@textlower}{}{gregoriotex-spaces.tex}
 Dimension representing the height of the separation between the 0th
 line (which is invisible except for notes in the a or b position) and
@@ -1760,6 +1941,9 @@
 \macroname{\textbackslash gre at skip@nextbegindifference}{}{gregoriotex-spaces.tex}
 The difference between the start of the notes and the start of the text for the next syllable.  Positive when when text begins first, negative in other case.
 
+\macroname{\textbackslash gre at skip@adjustednextbegindifference}{}{gregoriotex-spaces.tex}
+Only used in new bar spacing algorithm. It is \verb=grebegindifference= adjusted with \verb=alterationadjustmentbar= if relevant.
+
 \macroname{\textbackslash gre at dimen@begindifference}{}{gregoriotex-spaces.tex}
 The difference between the start of the notes and the start of the text for the current syllable.  Positive when when text begins first, negative in other case.  This means that \verb=\kern\gre at dimen@begindifference= will take you from the start of the notes to the start of the text.
 
@@ -1848,9 +2032,24 @@
 Skip after the most recent bar.
 
 \macroname{\textbackslash gre at skip@punctummorashift}{}{gregoriotex-spaces.tex}
-Displacement of whole syllable to account for the presence of a punctum mora at the end of the previous syllable
+Displacement of whole syllable to account for the presence of a punctum mora at the end of the previous syllable.
 
+\macroname{\textbackslash gre at skip@alterationshift}{}{gregoriotex-spaces.tex}
+Displacement of whole syllable to account for the presence of an alteration at the beginning of the next syllable.
 
+\macroname{\textbackslash gre at skip@baselineskip at save}{}{gregoriotex-spaces.tex}
+Saved value of \verb=\baselineskip= from before a score so that it can be restored when the score ends.
+
+\macroname{\textbackslash gre at skip@lineskip at save}{}{gregoriotex-spaces.tex}
+Saved value of \verb=\lineskip= from before a score so that it can be restored when the score ends.
+
+\macroname{\textbackslash gre at skip@lineskiplimit at save}{}{gregoriotex-spaces.tex}
+Saved value of \verb=\lineskiplimit= from before a score so that it can be restored when the score ends.
+
+\macroname{\textbackslash gre at skip@parskip at save}{}{gregoriotex-spaces.tex}
+Saved value of \verb=\parskip= from before a score so that it can be restored when the score ends.
+
+
 \subsection{Penalties}
 These are the macros that Gregorio\TeX\ uses to manipulate the penalties in order to control line and page breaks within a score without affect the surrounding text.
 
@@ -1933,7 +2132,39 @@
 A place to save the current value of the pretolerance so that we can change it temporarily and then restore it later.
 
 
+\subsection{Backwards compatibility}
+Depending on version of Lua\TeX / \LaTeX, some primitives have different names
+We define the following local aliases to account for this eventuality.
 
+\macroname{\textbackslash gre at localleftbox}{}{gregoriotex-main.tex}
+Current primitive: \verb=\localleftbox=
+Legacy primitive: \verb=\luatexlocalleftbox=
+
+\macroname{\textbackslash gre at localrightbox}{}{gregoriotex-main.tex}
+Current primitive: \verb=\localrightbox=
+Legacy primitive: \verb=\luatexlocalrightbox=
+
+\macroname{\textbackslash gre at startlink}{}{gregoriotex-main.tex}
+Current primitive: \verb=\pdfextension startlink=
+Legacy primitive: \verb=\pdfstartlink=
+
+\macroname{\textbackslash gre at endlink}{}{gregoriotex-main.tex}
+Current primitive: \verb=\pdfextension endlink=
+Legacy primitive: \verb=\pdfendlink=
+
+\macroname{\textbackslash gre at savepos}{}{gregoriotex-main.tex}
+Current primitive: \verb=\savepos=
+Legacy primitive: \verb=\pdfsavepos=
+
+\macroname{\textbackslash gre at lastxpos}{}{gregoriotex-main.tex}
+Current primitive: \verb=\lastxpos=
+Legacy primitive: \verb=\pdflastxpos=
+
+\macroname{\textbackslash gre at lastypos}{}{gregoriotex-main.tex}
+Current primitive: \verb=\lastypos=
+Legacy primitive: \verb=\pdflastypos=
+
+
 \subsection{\LaTeX/Plain \TeX\ compatibility}
 While every effort has been made to use only primitives which are compatible with both \LaTeX\ and Plain \TeX, it is sometimes necessary to use primitives which are defined for one but not the other (usually its \LaTeX\ that has what we need built in).  In these cases we have to provide an equivalent macro to the \TeX\ version which is lacking.
 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/Gabc.tex
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/Gabc.tex	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/Gabc.tex	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,23 @@
 % !TEX root = GregorioRef.tex
 % !TEX program = LuaLaTeX+se
+%
+% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
+%
+% This file is part of Gregorio.
+%
+% Gregorio 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 3 of the License, or
+% (at your option) any later version.
+%
+% Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+%
 \section{The GABC File}
 
 gabc is a simple notation based exclusively on ASCII characters that

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.tex
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.tex	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioNabcRef.tex	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,22 @@
 % !TEX program = LuaLaTeX+se
-
+%
+% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
+%
+% This file is part of Gregorio.
+%
+% Gregorio 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 3 of the License, or
+% (at your option) any later version.
+%
+% Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+%
 \documentclass[a4paper]{article}
 \usepackage{color}
 \usepackage[margin=1cm]{geometry}
@@ -200,8 +217,8 @@
 The \textit{pitch descriptor} allows to specify the vertical position of the
 neume.  There are no staves, so the vertical position is only rough.  For
 pitches the same letters as in \texttt{gabc} are used, \texttt{a} through
-\texttt{m}.  If the \textit{pitch descriptor} is missing, the default is
-\texttt{hf}, otherwise it consists of the letter \texttt{h} followed by
+\texttt{n} and \texttt{p}.  If the \textit{pitch descriptor} is missing, the default
+is \texttt{hf}, otherwise it consists of the letter \texttt{h} followed by
 the pitch letter.  Within the \textit{complex glyph descriptor}, each
 \textit{basic glyph descriptor} has its own pitch, but in the current fonts
 there are no glyphs with different relative pitches, so if you use a
@@ -524,6 +541,7 @@
 \texttt{C118C} Clamaverunt iusti \texttt{GT454}\\
 \texttt{C122I} In omnem terram \texttt{GT427}\\
 \texttt{C123C} Constitues eos \texttt{GT426}\\
+\texttt{C132D} Domine praevenisti \texttt{GT509}\\
 \texttt{C134B} Benedicite Dominum \texttt{GT608}\\
 \texttt{C137A} Audi filia \texttt{GT406}\\
 \texttt{C139A} Alleluia Benedictus es \texttt{GT375}\\
@@ -640,9 +658,24 @@
 \texttt{H269R} Repleti sunt omnes \texttt{NR494}\\
 \texttt{H270S} Spiritus Domini \texttt{AM520}\\
 \texttt{H271L} Loquebantur variis \texttt{AM521}\\
+\texttt{H297B} Beatam me dicent \texttt{NR[172]}\\
+\texttt{H305H} Hodie nata est \texttt{NR278*}\\
+\texttt{H305G} Gloriosae virginis Mariae \texttt{NR279*}\\
+\texttt{H306N} Nativitas gloriosae \texttt{NR280*}\\
+\texttt{H307N} Nativitas tua \texttt{NR281*}\\
+\texttt{H307F} Felix namque \texttt{NR[171]}\\
+\texttt{H320R} Regem confessorum\\
+\texttt{H322B} Beatus Gallus zelo\\
+\texttt{H322C} Columbanus itaque beato\\
+\texttt{H323B} Beatus Gallus cum\\
+\texttt{H323D} Domine Iesu Christe\\
+\texttt{H324P} Pater sanctus\\
+\texttt{H324V} Vir Deo plenus\\
+\texttt{H325I} Iste sanctus digne\\
 \texttt{H367V} Viri sancti \texttt{NR[54]}\\
 \texttt{H424M} Magnificat\\
-\texttt{H428A} Ascendens Iesus \texttt{AM593}
+\texttt{H428A} Ascendens Iesus \texttt{AM593}\\
+\texttt{H443V} Venite exsultemus \texttt{NRXXVIII}
 
 \noindent\textbf{St.\ Gall codex 339}
 
@@ -868,7 +901,10 @@
 \sneume{visu2sux1} & \texttt{visu2sux1} & \texttt{H48B} & mater & \fbox{1.7x}\\
 \sneume{vi-sut1su2} & \texttt{vi-sut1su2} & \texttt{H22S} & elegi & \fbox{1.71x}\\
 \sneume{vi-su1suu1} & \texttt{vi-su1suu1} & \texttt{H114C} & gloriam & \fbox{1.71x}\\
-\sneume{vi-su1suu1su2} & \texttt{vi-su1suu1su2} & \texttt{H114N} & nobis & \fbox{1.71x}\\ \hline
+\sneume{vi-su1suu1su2} & \texttt{vi-su1suu1su2} & \texttt{H114N} & nobis & \fbox{1.71x}\\
+\sneume{vi-su1sut2} & \texttt{vi-su1sut2} & \texttt{H324P} & aetatis & \fbox{2.0x}\\
+\sneume{vi-su3} & \texttt{vi-su3} & \texttt{H307F} & natalem & \fbox{2.0x}\\
+\sneume{vi-sut1suu1} & \texttt{vi-sut1suu1} & \texttt{325I} & peregrinatione & \fbox{2.0x}\\ \hline
 & \multicolumn{3}{l}{\textbf{scandicus}} & \\
 \sneume{sc} & \texttt{sc} & \texttt{G11P} & imperium & \fbox{0.85x}\\
 \sneume{sc1} & \texttt{sc1} \textit{Cf.} \sneume{vipp4} & \multicolumn{3}{l}{\texttt{vipp4} minus first punctum}\\
@@ -935,7 +971,12 @@
 \sneume{peSsut1su2} & \texttt{peSsut1su2} & \texttt{E13P} & Domine & \fbox{2.133x}\\
 \sneume{pesu1sux1} & \texttt{pesu1sux1} & \texttt{H25E} & angelum & \fbox{1.7x}\\
 \sneume{pe-1su1suw1} & \texttt{pe-1su1suw1} & \texttt{H29E} & deprecabuntur & \fbox{1.7x}\\
-\sneume{pesu1sut1} & \texttt{pesu1sut1} \textit{Cf.} \sneume{pesu1sut3} & \multicolumn{3}{l}{\texttt{pesu1sut3} minus 2 tractulis}\\ \hline
+\sneume{pesu1sut1} & \texttt{pesu1sut1} \textit{Cf.} \sneume{pesu1sut3} & \multicolumn{3}{l}{\texttt{pesu1sut3} minus 2 tractulis}\\
+\sneume{pe-1su1sut1} & \texttt{pe-1su1sut1} & \texttt{H306N} & de & \fbox{2.0x}\\
+\sneume{pe-1su1sut2} & \texttt{pe-1su1sut2} & \texttt{H305G} & Mariae & \fbox{2.0x}\\
+\sneume{pe-1su1suu2} & \texttt{pe-1su1suu2} & \texttt{H305G} & vidente & \fbox{2.0x}\\
+\sneume{pe-su4} & \texttt{pe-su4} & \texttt{C139A} & Alleluia\\
+\sneume{pesuv1su1sut1} & \texttt{pesuv1su1sut1} & \texttt{C139A} & Alleluia\\ \hline
 & \multicolumn{3}{l}{\textbf{scandicus flexus}} & \\
 \sneume{sf} & \texttt{sf} & \texttt{C64Q} & habitat\\
 \sneume{sflsc3} & \texttt{sflsc3} & \texttt{C27E} & Deus\\
@@ -959,7 +1000,8 @@
 \sneume{tr-~} & \texttt{tr-\char`\~} & \texttt{C27Q} & et\\
 \sneume{tr-~1} & \texttt{tr-\char`\~1} & \texttt{C107A} & Alleluia.\\
 \sneume{trS-} & \texttt{trS-} & \texttt{C89T} & pedes,\\
-\sneume{trS1} & \texttt{trS1} & \texttt{E26L} & eeiieiue & \fbox{2.166x}\\ \hline
+\sneume{trS1} & \texttt{trS1} & \texttt{E26L} & eeiieiue & \fbox{2.166x}\\
+\sneume{tr-3} & \texttt{tr-3} & \texttt{H323D} & honore & \fbox{2.0x}\\ \hline
 & \multicolumn{3}{l}{\textbf{stropha}} & \\
 \sneume{st} & \texttt{st} & \texttt{C80Q} & commovebitur\\
 \sneume{st-} & \texttt{st-} & \texttt{C52P} & Desiderium\\
@@ -1044,7 +1086,8 @@
 \sneume{saM3} & \texttt{saM3} & \texttt{N53A} & fratres\\
 \sneume{saM-4} & \texttt{saM-4} & \texttt{N296V} & amoris\\
 \sneume{sa>2} & \texttt{sa>2} & \texttt{H73S} & viderunt\\
-\sneume{sa1!cl->} & \texttt{sa1!cl->} & \texttt{H32N} & eius & \fbox{1.7x}\\ \hline
+\sneume{sa1!cl->} & \texttt{sa1!cl->} & \texttt{H32N} & eius & \fbox{1.7x}\\
+\sneume{sapp1} & \texttt{sapp1} & \texttt{H320R} & venite & \fbox{2.0x}\\ \hline
 & \multicolumn{3}{l}{\textbf{pes quassus}} & \\
 \sneume{pq} & \texttt{pq} & \texttt{C27E} & sacrificia.\\
 \sneume{pqlsfr1} & \texttt{pqlsfr1} & \texttt{C150L} & nostri\\
@@ -1106,7 +1149,10 @@
 \sneume{sut2suu1} & \texttt{sut2suu1} \textit{Cf.} \sneume{ql-ppt1sut2suu1} & \multicolumn{2}{l}{\texttt{ql-ppt1sut2suu1}}\\
 \sneume{suu3} & \texttt{suu3} \textit{Cf.} \sneume{vi-suu3} & \multicolumn{2}{l}{\texttt{vi-suu3}}\\
 \sneume{su1} & \texttt{su1} \textit{Cf.} \sneume{ci} & \multicolumn{2}{l}{\texttt{ci}}\\
-\sneume{sut1} & \texttt{sut1} \textit{Cf.} \sneume{ciS1} & \multicolumn{2}{l}{\texttt{ciS1}}\\ \hline
+\sneume{sut1} & \texttt{sut1} \textit{Cf.} \sneume{ciS1} & \multicolumn{2}{l}{\texttt{ciS1}}\\
+\sneume{su1suv1su2} & \texttt{su1suv1su2} \textit{Cf.} \sneume{ql-ppt2su1suv1su2} & \multicolumn{2}{l}{\texttt{ql-ppt2su1suv1su2}}\\
+\sneume{sut1suu1} & \texttt{sut1suu1} \textit{Cf.} \sneume{vi-sut1suu1} & \multicolumn{2}{l}{\texttt{vi-sut1suu1}}\\
+\sneume{suv1su1sut1} & \texttt{suv1su1sut1} \textit{Cf.} \sneume{pesuv1su1sut1} & \multicolumn{2}{l}{\texttt{pesuv1su1sut1}}\\ \hline
 \\
 & \multicolumn{3}{l}{\textbf{prepunctis}} & \\
 \sneume{pp2} & \texttt{pp2} \textit{Cf.} \sneume{vi-pp2} & \texttt{vi-pp2}\\
@@ -1145,6 +1191,11 @@
 \sneume{ql!vssut2} & \texttt{ql!vssut2} \textit{Cf.} \sneume{ql!vsppt1sut2} & \multicolumn{3}{l}{\texttt{ql!vsppt1sut2} minus tractulus}\\
 \sneume{qi!vs} & \texttt{qi!vs} \textit{Cf.} \sneume{qi!vssu2} & \multicolumn{3}{l}{\texttt{qi!vssu2} minus subbipunctis}\\
 \sneume{qi!vssu2} & \texttt{qi!vssu2} \textit{Cf.} \sneume{qi!vsppt1su2} & \multicolumn{3}{l}{\texttt{qi!vsppt1su2} minus tractulus}\\
+\sneume{ql-su1suu1} & \texttt{ql-su1suu1} \textit{Cf.} \sneume{ql-ppt1su1suu1} & \multicolumn{3}{l}{\texttt{ql-ppt1su1suu1} minus tractulus}\\
+\sneume{ql-su1suv1su2} & \texttt{ql-su1suv1su2} \textit{Cf.} \sneume{ql-ppt2su1suv1su2} & \multicolumn{3}{l}{\texttt{ql-ppt2su1suv1su2} minus tractulis}\\
+\sneume{qisut2} & \texttt{qisut2} \textit{Cf.} \sneume{qippt2sut2} & \multicolumn{3}{l}{\texttt{qippt2sut2} minus tractulis}\\
+\sneume{ql-su3} & \texttt{ql-su3} \textit{Cf.} \sneume{ql-ppt1su3} & \multicolumn{3}{l}{\texttt{ql-ppt1su3} minus tractulus}\\
+\sneume{qlsut3} & \texttt{qlsut3} \textit{Cf.} \sneume{qlppt1sut3} & \multicolumn{3}{l}{\texttt{qlppt1sut3} minus tractulus}\\
 \sneume{ql-su2} & \texttt{ql-su2} \textit{Cf.} \sneume{ql-ppt1su2} & \multicolumn{3}{l}{\texttt{ql-ppt1su2} minus tractulus}\\
 \sneume{ql-sut2} & \texttt{ql-sut2} & \texttt{H73S} & cedebat\\
 \sneume{ql-su1sux1} & \texttt{ql-su1sux1} \textit{Cf.} \sneume{ql-ppt1su1sux1} & \multicolumn{3}{l}{\texttt{ql-ppt1su1sux1} minus tractulus}\\
@@ -1196,6 +1247,14 @@
 \sneume{ql!vsppt1} & \texttt{ql!vsppt1} \textit{Cf.} \sneume{ql!vsppt1su2} & \multicolumn{3}{l}{\texttt{ql!vsppt1su2} minus subbipunctis}\\
 \sneume{ql!vsppt1sut2} & \texttt{ql!vsppt1sut2} & \texttt{H73S} & gaudio\\
 \sneume{qi!vsppt1su2} & \texttt{qi!vsppt1su2} & \texttt{H74I} & Domini\\
+\sneume{qi-sut3} & \texttt{qi-sut3} & \texttt{H322B} & in & \fbox{2.0x}\\
+\sneume{ql-ppt1su1suu1} & \texttt{ql-ppt1su1suu1} & \texttt{H305H} & David & \fbox{2.0x}\\
+\sneume{ql-ppt1su3} & \texttt{ql-ppt1su3} & \texttt{H323D} & subire & \fbox{2.0x}\\
+\sneume{qlppt1sut3} & \texttt{qlppt1sut3} & \texttt{H305G} & Redemptorem & \fbox{2.0x}\\
+\sneume{ql-ppt2su1suv1su2} & \texttt{ql-ppt2su1suv1su2} & \texttt{H306N} & illustrat & \fbox{2.0x}\\
+\sneume{ql-su1sut1} & \texttt{ql-su1sut1} & \texttt{H307F} & iustitiae & \fbox{2.0x}\\
+\sneume{qippt2sut2} & \texttt{qippt2sut2} & \texttt{H297B} & generationes & \fbox{2.0x}\\
+\sneume{ql!vssu3} & \texttt{ql!vssu3} & \texttt{H443V} & ei & \fbox{2.0x}\\
 \sneume{to!ciG} & \texttt{to!ciG} & \texttt{C28T} & gloriae.\\
 \sneume{to!cl} & \texttt{to!cl} & \texttt{C84T} & pupillo\\
 \sneume{to!cl!cl!cl} & \texttt{to!cl!cl!cl} & \texttt{C64Q} & sepavit,\\
@@ -1221,11 +1280,17 @@
 \sneume{cl!po} & \texttt{cl!po} & \texttt{C26A} & nobis.\\
 \sneume{cl!po-1} & \texttt{cl!po-1} & \texttt{H119C} & in\\
 \sneume{tr-1su2} & \texttt{tr-1su2} & \texttt{H73O} & dona\\
+\sneume{trSsut2} & \texttt{trSsut2} & \texttt{H305H} & devotissime & \fbox{2.0x}\\
 \sneume{ci-pp2} & \texttt{ci-pp2} & \texttt{H73S} & magno\\
 \sneume{toS2su2} & \texttt{toS2su2} & \texttt{H73S} & eam\\
 \sneume{toS2sut2} & \texttt{toS2sut2} & \texttt{C150L} & dicta\\
-\sneume{po-1pp2su1sux1} & \texttt{po-1pp2su1sux1} & \texttt{E75G} & filium & \fbox{2.2x}\\
-\sneume{po-1su1sux1} & \texttt{po-1su1sux1} \textit{Cf.} \sneume{po-1pp2su1sux1} & \multicolumn{3}{l}{\texttt{po-1pp2su1sux1} minus bipunctis}\\ \hline
+\sneume{to-1su2} & \texttt{to-1su2} & \texttt{H322C} & ostendere & \fbox{2.0x}\\
+\sneume{to-1su1} & \texttt{to-1su1} & \texttt{H323B} & Gallus & \fbox{2.0x}\\
+\sneume{to-1suu1su2} & \texttt{to-1suu1su2} & \texttt{H324V} & cognovi & \fbox{2.0x}\\
+\sneume{po-1pp2su1sux1} & \texttt{po-1pp2su1sux1} & \texttt{H323D} & desiderium & \fbox{2.0x}\\
+\sneume{po-1su1sux1} & \texttt{po-1su1sux1} \textit{Cf.} \sneume{po-1pp2su1sux1} & \multicolumn{3}{l}{\texttt{po-1pp2su1sux1} minus bipunctis}\\
+\sneume{pisu1} & \texttt{pisu1} & \texttt{H307N} & annuntiavit & \fbox{2.0x}\\
+\sneume{pq-su2} & \texttt{pq-su2} & \texttt{C132D} & praetioso\\ \hline
 \end{supertabular}
 
 \begin{supertabular}{llllll}\noindent

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.lua
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.lua	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.lua	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,3 +1,20 @@
+-- Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
+--
+-- This file is part of Gregorio.
+--
+-- Gregorio 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 3 of the License, or
+-- (at your option) any later version.
+--
+-- Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+
 local P = lpeg.P
 local R = lpeg.R
 local C = lpeg.C
@@ -27,6 +44,8 @@
   ['.notdef'] = true,
   ['.null'] = true,
   nonmarkingreturn = true,
+  AscendensOriscusLineBLTR = true,
+  AscendensOriscusLineTR = true,
   PunctumAuctusLineBL = true,
   PunctumLineBLBR = true,
   PunctumLineBR = true,
@@ -34,7 +53,8 @@
   PunctumSmall = true,
   FlexusLineBL = true,
   FlexusAmOneLineBL = true,
-  OriscusLineTR = true,
+  DescendensOriscusLineTR = true,
+  DescendensOriscusLineBLTR = true,
   QuilismaLineTR = true,
   VirgaLineBR = true,
   SalicusOriscus = true,
@@ -58,6 +78,15 @@
   AccentusReversus = [[\excluded{g}r2]],
   Ancus = [[gec]],
   AncusLongqueue = [[hfd]],
+  AscendensOriscusCavum = [[go1r]],
+  AscendensOriscusCavumHole = [[\excluded{gor}]],
+  AscendensOriscus = [[go1]],
+  AscendensOriscusLineBL = [[\excluded{e}@go1]],
+  AscendensOriscusLineTL = [[\excluded{i}@go1]],
+  AscendensOriscusScapus = [[gO1]],
+  AscendensOriscusScapusLongqueue = [[hO1]],
+  AscendensOriscusScapusOpenqueue = [[aO1]],
+  AscendensPunctumInclinatum = [[G1]],
   AuctumMora = [[\excluded{g}.]],
   BarBrace = [[\excluded{,}\_]],
   CClef = [[c3]],
@@ -70,13 +99,22 @@
   CustosUpLong = [[f+]],
   CustosUpMedium = [[a+]],
   CustosUpShort = [[g+]],
+  DescendensOriscusCavum = [[go0r]],
+  DescendensOriscusCavumHole = [[\excluded{go0r}]],
+  DescendensOriscus = [[go0]],
+  DescendensOriscusLineBL = [[\excluded{e}@go0]],
+  DescendensOriscusLineTL = [[\excluded{i}@go0]],
+  DescendensOriscusScapus = [[gO0]],
+  DescendensOriscusScapusLongqueue = [[hO0]],
+  DescendensOriscusScapusOpenqueue = [[aO0]],
+  DescendensPunctumInclinatum = [[G0]],
   DivisioDominican = [[,3]],
   DivisioDominicanAlt = [[,4]],
   DivisioMaior = [[:]],
   DivisioMinima = [[,]],
   DivisioMinor = [[;]],
+  FClefChange = [[f3]],
   FClef = [[f3]],
-  FClefChange = [[f3]],
   Flat = [[gx]],
   FlatHole = [[\excluded{gx}]],
   Flexus = [[ge]],
@@ -83,62 +121,62 @@
   FlexusLongqueue = [[hf]],
   FlexusNobar = [[@hf]],
   FlexusOriscus = [[goe]],
+  FlexusOriscusInusitatus = [[go1e]],
   FlexusOriscusScapus = [[gOe]],
+  FlexusOriscusScapusInusitatus = [[gO1e]],
+  FlexusOriscusScapusInusitatusLongqueue = [[hO1f]],
   FlexusOriscusScapusLongqueue = [[hOf]],
   LeadingOriscus = [[go\excluded{igig}]],
   LeadingPunctum = [[g\excluded{igig}]],
   LeadingQuilisma = [[gw\excluded{igig}]],
   Linea = [[g=]],
-  LineaPunctum = [[gR]],
   LineaPunctumCavum = [[gr0]],
   LineaPunctumCavumHole = [[\excluded{gr0}]],
+  LineaPunctum = [[gR]],
   Natural = [[gy]],
   NaturalHole = [[\excluded{gy}]],
-  Oriscus = [[go1]],
-  OriscusCavum = [[go1r]],
-  OriscusCavumDeminutus = [[gor\~{}]],
+  OblatusAscendensOriscus = [[go1]],
+  OblatusDescendensOriscus = [[go0]],
+  OblatusFlexusOriscus = [[goe]],
+  OblatusFlexusOriscusInusitatus = [[go1e]],
+  OblatusPesQuassus = [[goi]],
+  OblatusPesQuassusLongqueue = [[hoj]],
+  OblatusPesQuassusInusitatus = [[go0i]],
+  OblatusPesQuassusInusitatusLongqueue = [[ho0j]],
+  Oriscus = [[go]], -- for Deminutus
+  OriscusCavum = [[gor]], -- for Deminutus
   OriscusCavumDeminutusHole = [[\excluded{gor\~{}}]],
-  OriscusCavumHole = [[\excluded{gor}]],
-  OriscusCavumReversus = [[go0r]],
-  OriscusCavumReversusHole = [[\excluded{go0r}]],
-  OriscusLineBL = [[\excluded{e}@go]],
-  OriscusReversus = [[go0]],
-  OriscusReversusLineTL = [[\excluded{i}@go]],
-  OriscusScapus = [[gO1]],
-  OriscusScapusLongqueue = [[hO1]],
-  OriscusScapusOpenqueue = [[aO1]],
-  OriscusScapusReversus = [[gO0]],
-  OriscusScapusReversusLongqueue = [[hO0]],
-  OriscusScapusReversusOpenqueue = [[aO0]],
   Pes = [[gi]],
   PesQuadratum = [[gqi]],
   PesQuadratumLongqueue = [[hqj]],
   PesQuassus = [[goi]],
+  PesQuassusInusitatus = [[go0i]],
+  PesQuassusInusitatusLongqueue = [[ho0j]],
   PesQuassusLongqueue = [[hoj]],
   PesQuilisma = [[gwi]],
   PesQuilismaQuadratum = [[gWi]],
   PesQuilismaQuadratumLongqueue = [[hWj]],
-  Porrectus = [[geg]],
   PorrectusFlexus = [[gege]],
   PorrectusFlexusNobar = [[\excluded{e}gege]],
+  Porrectus = [[geg]],
   PorrectusLongqueue = [[hfh]],
   PorrectusNobar = [[@geg]],
-  Punctum = [[g]],
   PunctumCavum = [[gr]],
   PunctumCavumHole = [[\excluded{gr}]],
-  PunctumCavumInclinatum = [[Gr]],
   PunctumCavumInclinatumAuctus = [[Gr>]],
   PunctumCavumInclinatumAuctusHole = [[\excluded{Gr>}]],
+  PunctumCavumInclinatum = [[Gr]],
   PunctumCavumInclinatumHole = [[\excluded{Gr}]],
-  PunctumInclinatum = [[G]],
+  Punctum = [[g]],
+  PunctumInclinatum = [[G]], -- for deminutus
   PunctumInclinatumAuctus = [[G>]],
   PunctumLineBL = [[\excluded{e}@g]],
   PunctumLineTL = [[\excluded{i}@g]],
   Quilisma = [[gw]],
+  RoundBraceDown = '[ub:1;6mm]',
   RoundBrace = '[ob:1;6mm]',
-  RoundBraceDown = '[ub:1;6mm]',
+  SalicusFlexus = [[giOki]],
   Salicus = [[giOk]],
-  SalicusFlexus = [[giOki]],
   SalicusLongqueue = [[hjOl]],
   Scandicus = [[gik]],
   Semicirculus = [[\excluded{g}r4]],
@@ -145,9 +183,9 @@
   SemicirculusReversus = [[\excluded{g}r5]],
   Sharp = [[g\#{}]],
   SharpHole = [[\excluded{g\#{}}]],
-  Stropha = [[gs]],
   StrophaAucta = [[gs>]],
   StrophaAuctaLongtail = [[hs>]],
+  Stropha = [[gs]],
   Torculus = [[gig]],
   TorculusLiquescens = [[gige]],
   TorculusLiquescensQuilisma = [[gwige]],
@@ -173,6 +211,8 @@
   PesQuadratumOpenqueue = [[aqb]],
   PesQuassusOpenqueue = [[aob]],
   PesQuilismaQuadratumOpenqueue = [[aWb]],
+  OblatusPesQuassusInusitatusOpenqueue = [[ao0b]],
+  OblatusPesQuassusOpenqueue = [[boc]],
 }
 
 -- if the item is a table, the values will replace fuse_head and gabc
@@ -179,32 +219,58 @@
 local GABC_FUSE = {
   Upper = {
     Punctum = [[\excluded{e}@]],
-    Oriscus = [[\excluded{e}@]],
+    AscendensOriscus = [[\excluded{e}@]],
+    DescendensOriscus = [[\excluded{e}@]],
+    OblatusAscendensOriscus = [[\excluded{f}@]],
+    OblatusFlexusOriscusInusitatus = [[\excluded{f}@]],
+    OblatusPesQuassus = [[\excluded{f}@]],
+    OblatusPesQuassusLongqueue = [[\excluded{g}@]],
+    OblatusPesQuassusOpenqueue = [[\excluded{a}@]],
     Pes = [[\excluded{e}@]],
     PesQuadratum = [[\excluded{e}@]],
     PesQuadratumLongqueue = [[\excluded{f}@]],
-    PesQuadratumOpenqueue = { [[\excluded{a}@]], [[bq[ll:0]c]] },
+    PesQuadratumOpenqueue = { [[\excluded{a}@]], [[bqc]] },
     PesQuassus = [[\excluded{e}@]],
+    PesQuassusInusitatus = [[\excluded{e}@]],
+    PesQuassusInusitatusLongqueue = [[\excluded{f}@]],
     PesQuassusLongqueue = [[\excluded{f}@]],
-    PesQuassusOpenqueue = { [[\excluded{a}@]], [[bo[ll:0]c]] },
+    PesQuassusOpenqueue = { [[\excluded{a}@]], [[cod]] },
     Flexus = [[\excluded{e}@]],
+    FlexusOriscus = [[\excluded{e}@]],
+    FlexusOriscusInusitatus = [[\excluded{e}@]],
   },
   Lower = {
     Punctum = [[\excluded{i}@]],
-    Oriscus = [[\excluded{i}@]],
+    AscendensOriscus = [[\excluded{i}@]],
+    DescendensOriscus = [[\excluded{i}@]],
+    OblatusDescendensOriscus = [[\excluded{h}@]],
+    OblatusFlexusOriscus = [[\excluded{h}@]],
+    OblatusPesQuassusInusitatus = [[\excluded{h}@]],
+    OblatusPesQuassusInusitatusLongqueue = [[\excluded{i}@]],
+    OblatusPesQuassusInusitatusOpenqueue = [[\excluded{b}@]],
     Pes = [[\excluded{i}@]],
     PesQuadratum = [[\excluded{i}@]],
     PesQuadratumLongqueue = [[\excluded{j}@]],
     PesQuadratumOpenqueue = [[\excluded{b}@]],
     PesQuassus = [[\excluded{i}@]],
+    PesQuassusInusitatus = [[\excluded{i}@]],
+    PesQuassusInusitatusLongqueue = [[\excluded{j}@]],
+    PesQuassusLongqueue = [[\excluded{j}@]],
+    PesQuassusOpenqueue = [[\excluded{b}@]],
     Flexus = [[\excluded{i}@]],
     FlexusOriscus = [[\excluded{i}@]],
+    FlexusOriscusInusitatus = [[\excluded{i}@]],
   },
   Up = {
     Punctum = [[\excluded{@ij}]],
-    Oriscus = [[\excluded{@ij}]],
-    OriscusScapus = [[\excluded{@ij}]],
-    OriscusScapusLongqueue = [[\excluded{@jk}]],
+    AscendensOriscus = [[\excluded{@ij}]],
+    AscendensOriscusScapus = [[\excluded{@ij}]],
+    AscendensOriscusScapusLongqueue = [[\excluded{@jk}]],
+    DescendensOriscus = [[\excluded{@ij}]],
+    DescendensOriscusScapus = [[\excluded{@ij}]],
+    DescendensOriscusScapusLongqueue = [[\excluded{@jk}]],
+    OblatusAscendensOriscus = [[\excluded{@i}]],
+    OblatusDescendensOriscus = [[\excluded{@i}]],
     Quilisma = [[\excluded{@ij}]],
     Flexus = [[\excluded{@gi}]],
     FlexusNobar = [[\excluded{@hj}]],
@@ -211,9 +277,14 @@
   },
   Down = {
     Punctum = [[\excluded{@eg}]],
-    Oriscus = [[\excluded{@eg}]],
-    OriscusScapus = [[\excluded{@eg}]],
-    OriscusScapusLongqueue = [[\excluded{@eg}]],
+    AscendensOriscus = [[\excluded{@eg}]],
+    AscendensOriscusScapus = [[\excluded{@eg}]],
+    AscendensOriscusScapusLongqueue = [[\excluded{@eg}]],
+    DescendensOriscus = [[\excluded{@eg}]],
+    DescendensOriscusScapus = [[\excluded{@eg}]],
+    DescendensOriscusScapusLongqueue = [[\excluded{@eg}]],
+    OblatusAscendensOriscus = [[\excluded{@e}]],
+    OblatusDescendensOriscus = [[\excluded{@e}]],
     VirgaReversa = [[\excluded{@eg}]],
     VirgaReversaLongqueue = [[\excluded{@fg}]],
   },
@@ -304,6 +375,8 @@
         liq = ''
       end
       gabc = '('..fuse_head..DEBILIS[debilis]..gabc..LIQUESCENCE[liq]..fuse_tail..')'
+    else
+      texio.write_nl('GregorioRef Warning: missing GABC for '..name)
     end
     tex.sprint(string.format(
         [[{\scriptsize %s{\bfseries %s}{\itshape %s}%s%s}&{\ttfamily\small %s}&{\%s\char%d}&{\%s\char%d}&{\%s\char%d}&]],
@@ -336,8 +409,8 @@
   local post_word_liquescentia = P'Nothing' + P'Deminutus' + P'Ascendens' +
       P'Descendens'
   local liquescentia = post_word_liquescentia + P'Up' + P'Down'
-  local word = (majuscule * minuscule^0) - fusion - ambitus - debilis -
-      post_word_liquescentia
+  local word = ((majuscule * minuscule^0) - fusion - ambitus - debilis -
+      post_word_liquescentia) + ((P'Ascendens' + P'Descendens') * P'Oriscus')
   local liquescence = debilis^-1 * liquescentia^-1
   local pattern = C(fusion^-1) * C(word^1) * C(ambitus^0) * C(debilis^-1) *
       C(liquescentia^-1) * -1

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.tex
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.tex	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/GregorioRef.tex	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,22 @@
 % !TEX program = LuaLaTeX+se
+%
+% Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
+%
+% This file is part of Gregorio.
+%
+% Gregorio 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 3 of the License, or
+% (at your option) any later version.
+%
+% Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+%
 \documentclass[12pt,a4paper]{article}
 \usepackage[titletoc,toc,title]{appendix}
 \usepackage{fontspec}
@@ -32,7 +50,6 @@
 \usepackage{url}
 \usepackage{tabulary}
 \usepackage{tabularx}
-\usepackage{adjustbox}
 \usepackage{xparse}
 
 \usepackage{makeidx}
@@ -43,6 +60,7 @@
 \definecolor{green}{HTML}{0c700c}
 \definecolor{myred}{HTML}{FF3333}
 
+\usepackage{adjustbox} % must be after xcolor
 \usepackage{minted} % must be after xcolor
 \makeatletter
 \@ifpackagelater{minted}{2013/12/21}{%
@@ -87,7 +105,7 @@
 	\ifbreakable%
 		\filbreak%
 	\else%
-		\breakabletrue%
+		\global\breakabletrue%
 	\fi%
 	\makebox[\linewidth]{\ttfamily\bfseries #1#2%
 	\hspace{\fill}\normalfont\itshape #3}%
@@ -132,11 +150,20 @@
 	\fi%
 }
 
+\NewDocumentEnvironment{gcount}{m}{\macroname{#1}{}{gsp-default.tex}}{%
+
+	Default: \expandafter$\expandafter\the\csname gre at space@count@#1\endcsname$
+}
+
 \newcommand{\writemode}[3]{%
 	\gre at style@modeline #1\endgre at style@modeline %
 	\gre at style@modemodifier #2\endgre at style@modemodifier %
 	\gre at style@modedifferentia #3\endgre at style@modedifferentia %
 }
+
+\newcommand{\getgrecount}[1]{%
+	\the\csname gre at count@#1\endcsname%
+}
 \makeatother
 
 \setlength{\parindent}{0mm} % Default is 15pt
@@ -152,7 +179,7 @@
 
 		\vspace{1cm}
 
-		\large Version \textbf{4.1.4}, 29 May 2016 %% PARSE_VERSION_DATE
+		\large Version \textbf{4.2.0}, 23 September 2016 %% PARSE_VERSION_DATE
 
 		\vspace{1.5cm}
 	\end{center}

Modified: trunk/Build/source/texk/gregorio/gregorio-src/doc/Makefile.am
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/Makefile.am	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/Makefile.am	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
 #
 # This file is part of Gregorio.
 #
@@ -21,6 +21,8 @@
 		   Gabc.tex Appendix_Font_Tables.tex GregorioRef.lua factus.gabc
 NABCSRCFILES = GregorioNabcRef.tex veni.gabc
 
+GREGORIO=gregorio-$(FILENAME_VERSION)
+
 .NOTPARALLEL:
 
 # I know these rules look wrong, but they must not depend on anything that
@@ -27,34 +29,41 @@
 # gets generated or make distcheck will fail.
 
 GregorioRef.pdf: $(SRCFILES)
-	$(MAKE) $(AM_MAKEFLAGS) -C ../src gregorio
-	../src/gregorio -o factus.gtex $(<D)/factus.gabc
+	$(MAKE) $(AM_MAKEFLAGS) -C ../src $(GREGORIO)
+	../src/$(GREGORIO) -o factus.gtex $(<D)/factus.gabc
 	TEXINPUTS=$(<D):$(<D)/../tex: LUAINPUTS=$(<D):$(<D)/../tex: \
-		 TTFONTS=$(<D)/../fonts: PATH=../src:${PATH} latexmk -recorder -pdf \
+		 TTFONTS=$(<D)/../fonts: PATH=../src:${PATH} latexmk -f -recorder -pdf \
+		 -interaction=nonstopmode -halt-on-error \
 		 -pdflatex='lualatex --shell-escape %O %S' \
-		 -jobname=GregorioRef $<
+		 -jobname=GregorioRef $< || rm $@
 
 GregorioNabcRef.pdf: $(NABCSRCFILES)
-	$(MAKE) $(AM_MAKEFLAGS) -C ../src gregorio
-	../src/gregorio -o veni.gtex $(<D)/veni.gabc
+	$(MAKE) $(AM_MAKEFLAGS) -C ../src $(GREGORIO)
+	../src/$(GREGORIO) -o veni.gtex $(<D)/veni.gabc
 	TEXINPUTS=$(<D):$(<D)/../tex: LUAINPUTS=$(<D):$(<D)/../tex: \
 		 TTFONTS=$(<D)/../fonts: PATH=../src:${PATH} latexmk -recorder -pdf \
+		 -interaction=nonstopmode -halt-on-error \
 		 -pdflatex='lualatex --shell-escape %O %S' \
-		 -jobname=GregorioNabcRef $<
+		 -jobname=GregorioNabcRef $< || rm $@
 
 doc: GregorioRef.pdf GregorioNabcRef.pdf
 
 pdf-local: doc
 
-distclean-local:
+clean-doc-intermediate:
 	latexmk -quiet -c -f -jobname=GregorioRef GregorioRef.tex
 	latexmk -quiet -c -f -jobname=GregorioNabcRef GregorioNabcRef.tex
-	rm -rf _minted* *.gtex *.aux *.gaux
+	rm -rf _minted* *.gtex *.aux *.gaux *.glog
 
+clean-doc: clean-doc-intermediate
+	rm -rf GregorioRef.pdf
+	rm -rf GregorioNabcRef.pdf
+
+distclean-local: clean-doc-intermediate
+
+maintainer-clean-local: clean-doc
+
 EXTRA_DIST = $(SRCFILES) $(NABCSRCFILES) \
 	     GregorioRef.pdf \
-	     GregorioNabcRef.pdf
-
-maintainer-clean-local:
-	rm -rf GregorioRef*.pdf
-	rm -rf GregorioRef-* GregorioNabcRef-*
+	     GregorioNabcRef.pdf \
+	     README.md

Added: trunk/Build/source/texk/gregorio/gregorio-src/doc/README.md
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/doc/README.md	                        (rev 0)
+++ trunk/Build/source/texk/gregorio/gregorio-src/doc/README.md	2016-09-25 06:05:30 UTC (rev 42143)
@@ -0,0 +1,19 @@
+Documentation for gregorio and gregoriotex
+==========================================
+
+This folder contains the source files of a manual is primarily intended for
+developers. Users should not expect to find an indepth guide on using gregorio.
+
+You can find a compiled PDF version in the files of each [Gregorio release](https://github.com/gregorio-project/gregorio/releases).
+
+Developers can use this manual as a reference for information on the
+internal workings of gregorio.
+
+## Building
+
+To compile the pdf you must have
+ * an up-to-date [TeXLive](https://www.tug.org/texlive/) system, with at least the `luatex` bundle and `latexmk`
+ * the [Linux Libertine](http://www.linuxlibertine.org/index.php?id=1&L=1) and [Inconsolata](http://www.levien.com/type/myfonts/inconsolata.html) fonts (distributed by TeXLive too)
+ * the [`pygments` library](http://pygments.org/)
+
+Once you have run `./configure` in the main directory, run `make doc` in this directory.

Modified: trunk/Build/source/texk/gregorio/gregorio-src/examples/Makefile.am
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/examples/Makefile.am	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/examples/Makefile.am	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
 #
 # This file is part of Gregorio.
 #

Modified: trunk/Build/source/texk/gregorio/gregorio-src/install-gtex.sh
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/install-gtex.sh	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/install-gtex.sh	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md)
 #
@@ -56,6 +56,10 @@
 #
 #   Creates a TDS-ready archive named gregoriotex.tds.zip
 #
+# In special situations, you may want to skip some parts of the installation.
+# To do this, set the SKIP environment variable to a comma-separated list of
+# the parts you want don't want installed: tex, latex, fonts, docs, examples,
+# and/or font-sources
 
 VERSION=`head -1 .gregorio-version`
 FILEVERSION=`echo $VERSION | sed 's/\./_/g'`
@@ -66,9 +70,7 @@
 TTFFILES=(gregorio.ttf greciliae.ttf granapadano.ttf gregorio-op.ttf
           greciliae-op.ttf granapadano-op.ttf greextra.ttf gregall.ttf
           gresgmodern.ttf)
-DOCFILES=(doc/Appendix*.tex doc/Command*.tex doc/Gabc.tex
-          doc/*Ref.tex doc/*Ref.lua doc/*.gabc
-          doc/Gregorio*Ref.pdf)
+DOCFILES=(doc/*.tex doc/*.lua doc/*.gabc doc/*.pdf doc/README.md)
 EXAMPLEFILES=(examples/FactusEst.gabc examples/PopulusSion.gabc
               examples/main-lualatex.tex examples/debugging.tex)
 FONTSRCFILES=(gregorio-base.sfd granapadano-base.sfd greciliae-base.sfd
@@ -159,24 +161,49 @@
 }
 
 function find_and_remove {
-    for files in $1; do
+    for files in "$@"; do
         target="${TEXMFROOT}/${files}"
+#        echo "Looking for $target"
         if [ -e "$target" ]; then
+#            echo "Removing $target"
             $RM -f "$target"
         fi
     done
 }
 
+function not_installing {
+    echo "install-gtex.sh: not installing $@"
+}
+
 echo "Removing old files"
 find_and_remove "${LEGACYFILES[@]}"
 
+declare -A skip_install
+if [ -n "$SKIP" ]
+then
+    IFS=, read -r -a skip <<< "$SKIP"
+    for skipped in "${skip[@]}"
+    do
+        # trim spaces
+        skipped="${skipped#"${skipped%%[![:space:]]*}"}"
+        skipped="${skipped%"${skipped##*[![:space:]]}"}"
+        skip_install[$skipped]=true
+    done
+fi
+
 echo "Installing in '${TEXMFROOT}'."
-install_to "${TEXMFROOT}/tex/${FORMAT}/${NAME}" "${TEXFILES[@]}"
-install_to "${TEXMFROOT}/tex/${LATEXFORMAT}/${NAME}" "${LATEXFILES[@]}"
-install_to "${TEXMFROOT}/fonts/truetype/public/${NAME}" "${TTFFILES[@]}"
-install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}" "${DOCFILES[@]}"
-install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}/examples" "${EXAMPLEFILES[@]}"
-install_to "${TEXMFROOT}/fonts/source/${NAME}" "${FONTSRCFILES[@]}"
+${skip_install[tex]:-false} && not_installing tex files ||
+    install_to "${TEXMFROOT}/tex/${FORMAT}/${NAME}" "${TEXFILES[@]}"
+${skip_install[latex]:-false} && not_installing latex files ||
+    install_to "${TEXMFROOT}/tex/${LATEXFORMAT}/${NAME}" "${LATEXFILES[@]}"
+${skip_install[fonts]:-false} && not_installing fonts ||
+    install_to "${TEXMFROOT}/fonts/truetype/public/${NAME}" "${TTFFILES[@]}"
+${skip_install[docs]:-false} && not_installing docs ||
+    install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}" "${DOCFILES[@]}"
+${skip_install[examples]:-false} && not_installing examples ||
+    install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}/examples" "${EXAMPLEFILES[@]}"
+${skip_install[font-sources]:-false} && not_installing font sources ||
+    install_to "${TEXMFROOT}/fonts/source/${NAME}" "${FONTSRCFILES[@]}"
 
 if [ "$arg" = 'tds' ]
 then

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/Makefile.am
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/Makefile.am	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/Makefile.am	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+# Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
 #
 # This file is part of Gregorio.
 #
@@ -16,20 +16,17 @@
 # along with Gregorio.  If not, see <http://www.gnu.org/licenses/>.
 
 AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/gabc  -I$(top_srcdir)/src/dump  -I$(top_srcdir)/src/gregoriotex
-AM_CFLAGS =
+AM_CFLAGS = $(KPSE_CFLAGS)
+LDADD = $(KPSE_LIBS)
 
-gregorio_CFLAGS = $(KPSE_CFLAGS)
-gregorio_LDADD = $(KPSE_LIBS)
+bin_PROGRAMS = gregorio-$(FILENAME_VERSION)
+gregorio___FILENAME_VERSION__SOURCES = \
+	gregorio-utils.c characters.c characters.h messages.c messages.h struct.c \
+	struct.h struct_iter.h enum_generator.h unicode.c unicode.h sha1.c sha1.h \
+	support.c support.h config.h bool.h plugins.h utf8strings.h dump/dump.c \
+	gregoriotex/gregoriotex-write.c gregoriotex/gregoriotex-position.c \
+	gregoriotex/gregoriotex.h
 
-bin_PROGRAMS = gregorio
-gregorio_SOURCES = gregorio-utils.c characters.c characters.h \
-					messages.c messages.h struct.c struct.h enum_generator.h \
-					unicode.c unicode.h sha1.c sha1.h support.c support.h \
-					config.h bool.h plugins.h utf8strings.h dump/dump.c \
-					gregoriotex/gregoriotex-write.c \
-					gregoriotex/gregoriotex-position.c \
-					gregoriotex/gregoriotex.h
-
 @MK at ifneq ($(wildcard ../.git),)
 @MK@  _tag_ = $(shell git describe --exact-match HEAD 2>/dev/null)
 @MK@  ifeq ($(_tag_),)
@@ -46,32 +43,25 @@
 @MK at endif
 
 # gabc files
-gregorio_SOURCES += gabc/gabc-elements-determination.c gabc/gabc-write.c \
-					gabc/gabc-glyphs-determination.c gabc/gabc.h \
-					gabc/gabc-score-determination.h \
-					gabc/gabc-score-determination-y.h \
-					gabc/gabc-score-determination-y.c \
-					gabc/gabc-score-determination-l.h \
-					gabc/gabc-score-determination-l.c \
-					gabc/gabc-notes-determination-l.c \
-					vowel/vowel.h vowel/vowel.c vowel/vowel-rules.h \
-					vowel/vowel-rules-l.h vowel/vowel-rules-l.c \
-					vowel/vowel-rules-y.h vowel/vowel-rules-y.c
+gregorio___FILENAME_VERSION__SOURCES += \
+	gabc/gabc-elements-determination.c gabc/gabc-write.c \
+	gabc/gabc-glyphs-determination.c gabc/gabc.h \
+	gabc/gabc-score-determination.h gabc/gabc-score-determination.c \
+	gabc/gabc-score-determination-y.h gabc/gabc-score-determination-y.c \
+	gabc/gabc-score-determination-l.h gabc/gabc-score-determination-l.c \
+	gabc/gabc-notes-determination-l.c vowel/vowel.h vowel/vowel.c \
+	vowel/vowel-rules.h  vowel/vowel-rules-l.h vowel/vowel-rules-l.c \
+	vowel/vowel-rules-y.h vowel/vowel-rules-y.c
 
 EXTRA_DIST = encode_utf8strings.c utf8strings.h.in utf8strings.h \
-					gabc/gabc-notes-determination.l \
-					gabc/gabc-notes-determination-l.c \
-					gabc/gabc-score-determination.h \
-					gabc/gabc-score-determination.y \
-					gabc/gabc-score-determination-y.h \
-					gabc/gabc-score-determination-y.c \
-					gabc/gabc-score-determination.l \
-					gabc/gabc-score-determination-l.h \
-					gabc/gabc-score-determination-l.c \
-					vowel/vowel-rules.l \
-					vowel/vowel-rules-l.h vowel/vowel-rules-l.c \
-					vowel/vowel-rules.y \
-					vowel/vowel-rules-y.h vowel/vowel-rules-y.c
+			 gabc/gabc-notes-determination.l gabc/gabc-notes-determination-l.c \
+			 gabc/gabc-score-determination.h gabc/gabc-score-determination.y \
+			 gabc/gabc-score-determination-y.h \
+			 gabc/gabc-score-determination-y.c gabc/gabc-score-determination.l \
+			 gabc/gabc-score-determination-l.h \
+			 gabc/gabc-score-determination-l.c vowel/vowel-rules.l \
+			 vowel/vowel-rules-l.h vowel/vowel-rules-l.c vowel/vowel-rules.y \
+			 vowel/vowel-rules-y.h vowel/vowel-rules-y.c
 
 if HAVE_RC
 # Windows resources (see windows/README.md)
@@ -78,8 +68,8 @@
 gregorio-resources.o: ../windows/gregorio-resources.rc ../windows/gregorio.ico
 	$(RC) $(RCFLAGS) $< -o $@
 
-gregorio_SOURCES += ../windows/gregorio-resources.rc ../windows/gregorio.ico
-gregorio_LDADD += gregorio-resources.o
+gregorio___FILENAME_VERSION__SOURCES += ../windows/gregorio-resources.rc ../windows/gregorio.ico
+LDADD += gregorio-resources.o
 endif
 
 gabc/gabc-score-determination-y.c: gabc/gabc-score-determination.y
@@ -136,16 +126,13 @@
 	find . -name '*.gcno' -print | xargs rm -f --
 	find . -name '*.gcda' -print | xargs rm -f --
 
-BUILT_SOURCES = utf8strings.h \
-					gabc/gabc-notes-determination-l.c \
-					gabc/gabc-score-determination-l.c \
-					gabc/gabc-score-determination-l.h \
-					gabc/gabc-score-determination-y.c \
-					gabc/gabc-score-determination-y.h \
-					vowel/vowel-rules-l.c \
-					vowel/vowel-rules-l.h \
-					vowel/vowel-rules-y.c \
-					vowel/vowel-rules-y.h
+BUILT_SOURCES = utf8strings.h gabc/gabc-notes-determination-l.c \
+				gabc/gabc-score-determination-l.c \
+				gabc/gabc-score-determination-l.h \
+				gabc/gabc-score-determination-y.c \
+				gabc/gabc-score-determination-y.h vowel/vowel-rules-l.c \
+				vowel/vowel-rules-l.h vowel/vowel-rules-y.c \
+				vowel/vowel-rules-y.h
 
 CLEANFILES = encode_utf8strings${EXEEXT}
 MAINTAINERCLEANFILES = $(BUILT_SOURCES)

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/characters.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/characters.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/characters.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX.
  * This file contains functions that deal with lyrics and styles.
  *
- * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/characters.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/characters.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/characters.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This header prototypes the lyric handling data structures and entry points.
  *
- * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/dump/dump.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/dump/dump.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/dump/dump.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX.
  * This file provides functions to dump out Gregorio structures.
  *
- * Copyright (C) 2007-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2007-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/enum_generator.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/enum_generator.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/enum_generator.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-elements-determination.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-elements-determination.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-elements-determination.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX.
  * This file provides functions for determining elements from notes.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 
@@ -198,8 +198,15 @@
             }
             break;
 
+        case G_STROPHA_AUCTA:
+        case G_STROPHA:
+            if (current_glyph->u.notes.liquescentia
+                    & (L_AUCTUS_ASCENDENS | L_AUCTUS_DESCENDENS)) {
+                force_cut = true;
+            }
+            /* fall through */
         case PUNCTA_INCLINATA_DESCENDENS_GLYPH:
-            /* we don't cut before, so we don't do anything */
+            /* we don't cut before, so we don't do anything else */
             if (do_not_cut) {
                 do_not_cut = false;
             }
@@ -239,6 +246,16 @@
                     }
                     break;
 
+                case G_PODATUS:
+                    if (current_glyph->u.notes.glyph_type == G_VIRGA) {
+                        ambitus = glyph_note_ambitus(current_glyph, previous_glyph);
+                        if (ambitus >= 0) {
+                            do_not_cut = false;
+                            break_early = true;
+                        }
+                    }
+                    break;
+
                 default:
                     /* do nothing in particular */
                     break;
@@ -294,11 +311,12 @@
 
 static gregorio_element *gabc_det_elements_from_notes(
         gregorio_note *current_note, int *current_key,
+        gregorio_shape *const punctum_inclinatum_orientation,
         const gregorio_score *const score)
 {
     gregorio_element *final = NULL;
     gregorio_glyph *tmp = gabc_det_glyphs_from_notes(current_note, current_key,
-            score);
+            punctum_inclinatum_orientation, score);
     final = gabc_det_elements_from_glyphs(tmp);
     return final;
 }
@@ -305,12 +323,15 @@
 
 gregorio_element *gabc_det_elements_from_string(char *const str,
         int *const current_key, char *macros[10],
-        gregorio_scanner_location *const loc, const gregorio_score *const score)
+        gregorio_scanner_location *const loc,
+        gregorio_shape *const punctum_inclinatum_orientation,
+        const gregorio_score *const score)
 {
     gregorio_element *final;
     gregorio_note *tmp;
     tmp = gabc_det_notes_from_string(str, macros, loc, score);
-    final = gabc_det_elements_from_notes(tmp, current_key, score);
+    final = gabc_det_elements_from_notes(tmp, current_key,
+            punctum_inclinatum_orientation, score);
     return final;
 }
 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-glyphs-determination.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-glyphs-determination.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-glyphs-determination.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file provides functions for determining glyphs from notes.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *
@@ -81,11 +81,12 @@
  *
  ****************************/
 
-static char gregorio_add_note_to_a_glyph(gregorio_glyph_type current_glyph_type,
+static char add_note_to_a_glyph(gregorio_glyph_type current_glyph_type,
         char current_pitch, char last_pitch, gregorio_shape shape,
         gregorio_liquescentia liquescentia,
         gregorio_note *current_glyph_first_note,
-        gabc_determination * end_of_glyph)
+        gabc_determination *end_of_glyph,
+        gregorio_shape *punctum_inclinatum_orientation)
 {
 
     /* next glyph type is the type of the glyph that will be returned (the
@@ -167,7 +168,7 @@
                 *end_of_glyph = DET_END_OF_PREVIOUS;
             }
             break;
-        case G_VIRGA_STRATA:
+        case G_VIRGA_STRATA: /* really a pes stratus */
             if (current_pitch > last_pitch) {
                 next_glyph_type = G_SALICUS;
             } else {
@@ -291,7 +292,9 @@
             next_glyph_type = G_PUNCTUM;
         }
         break;
-    case S_PUNCTUM_INCLINATUM:
+    case S_PUNCTUM_INCLINATUM_UNDETERMINED:
+    case S_PUNCTUM_INCLINATUM_ASCENDENS:
+    case S_PUNCTUM_INCLINATUM_DESCENDENS:
     case S_PUNCTUM_CAVUM_INCLINATUM:
         /*
          * Warning : this part of the code is specific to the
@@ -311,6 +314,16 @@
             next_glyph_type = G_PUNCTUM_INCLINATUM;
             break;
         }
+        if ((shape == S_PUNCTUM_INCLINATUM_ASCENDENS
+                    || shape == S_PUNCTUM_INCLINATUM_DESCENDENS)
+                && *punctum_inclinatum_orientation != shape
+                && *punctum_inclinatum_orientation
+                != S_PUNCTUM_INCLINATUM_UNDETERMINED) {
+            /* change of orientation ends the glyph */
+            *end_of_glyph = DET_END_OF_PREVIOUS;
+            next_glyph_type = G_PUNCTUM_INCLINATUM;
+            break;
+        }
         switch (current_glyph_type) {
         case G_PUNCTUM_INCLINATUM:
             if (last_pitch < current_pitch) {
@@ -402,7 +415,7 @@
     default:
         /* not reachable unless there's a programming error */
         /* LCOV_EXCL_START */
-        gregorio_fail2(gregorio_add_note_to_a_glyph, "unexpected shape: %s",
+        gregorio_fail2(add_note_to_a_glyph, "unexpected shape: %s",
                 gregorio_shape_to_string(shape));
         break;
         /* LCOV_EXCL_STOP */
@@ -443,7 +456,7 @@
                 gregorio_message(_("Encountered the need to switch "
                             "DET_END_OF_CURRENT to DET_END_OF_BOTH because of "
                             "overly large ambitus"),
-                            "gregorio_add_note_to_a_glyph", VERBOSITY_WARNING,
+                            "add_note_to_a_glyph", VERBOSITY_WARNING,
                             __LINE__);
                 *end_of_glyph = DET_END_OF_BOTH;
             } else {
@@ -453,6 +466,22 @@
         }
     }
 
+    switch (shape) {
+    case S_PUNCTUM_CAVUM_INCLINATUM:
+        /* treat this as descendens */
+        *punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_DESCENDENS;
+        break;
+    case S_PUNCTUM_INCLINATUM_ASCENDENS:
+    case S_PUNCTUM_INCLINATUM_DESCENDENS:
+        *punctum_inclinatum_orientation = shape;
+        break;
+    case S_PUNCTUM_INCLINATUM_UNDETERMINED:
+        break;
+    default:
+        *punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_UNDETERMINED;
+        break;
+    }
+
     return next_glyph_type;
 }
 
@@ -641,7 +670,8 @@
 
 static gregorio_note *close_fusion_glyph(gregorio_glyph **last_glyph,
         gregorio_note **first_note, gregorio_liquescentia liquescentia,
-        gregorio_note *real_last_note)
+        gregorio_note *real_last_note,
+        gregorio_shape *const punctum_inclinatum_orientation)
 {
     bool first = true;
     gregorio_note *last_note, *texverb_tail;
@@ -675,11 +705,15 @@
             gregorio_free_one_note(first_note);
         }
 
-        gregorio_assert(
-                *first_note != last_note && (next = (*first_note)->next),
-                close_fusion_glyph, "Unexpected single note during fusion",
-                return last_note);
+        if (*first_note == last_note) {
+            close_fused_glyph(last_glyph, G_PUNCTUM, first_note,
+                        liquescentia & ~TAIL_LIQUESCENTIA_MASK, last_note);
+            return last_note;
+        }
 
+        gregorio_assert((*first_note)->next, close_fusion_glyph,
+                "Unexpected single note during fusion", return last_note);
+
         next = next_non_texverb_note(*first_note, last_note);
 
         shift = next->u.note.pitch - (*first_note)->u.note.pitch;
@@ -729,9 +763,10 @@
             /* didn't find anything interesting, so fuse the single note */
             gabc_determination ignored;
             gregorio_glyph_type next_glyph_type =
-                    gregorio_add_note_to_a_glyph(G_UNDETERMINED,
+                    add_note_to_a_glyph(G_UNDETERMINED,
                     (*first_note)->u.note.pitch, 0, (*first_note)->u.note.shape,
-                    (*first_note)->u.note.liquescentia, *first_note, &ignored);
+                    (*first_note)->u.note.liquescentia, *first_note, &ignored,
+                    punctum_inclinatum_orientation);
             close_fused_glyph(last_glyph, next_glyph_type, first_note,
                     liquescentia & ~TAIL_LIQUESCENTIA_MASK, *first_note);
             prev_shift = shift;
@@ -746,11 +781,28 @@
 
 static gregorio_note *close_glyph(gregorio_glyph **last_glyph,
         gregorio_glyph_type glyph_type, gregorio_note **first_note,
-        gregorio_liquescentia liquescentia, gregorio_note *current_note)
+        gregorio_liquescentia liquescentia, gregorio_note *current_note,
+        gregorio_shape *const punctum_inclinatum_orientation)
 {
+    /* special case for fusion when rarer shapes don't exist */
+    if (glyph_type == G_TORCULUS) {
+        switch ((*first_note)->u.note.shape) {
+        case S_ORISCUS_UNDETERMINED:
+        case S_ORISCUS_ASCENDENS:
+        case S_ORISCUS_DESCENDENS:
+        case S_ORISCUS_SCAPUS_UNDETERMINED:
+        case S_ORISCUS_SCAPUS_ASCENDENS:
+        case S_ORISCUS_SCAPUS_DESCENDENS:
+            glyph_type = G_FUSED;
+            break;
+        default:
+            break;
+        }
+    }
+
     if (glyph_type == G_FUSED) {
         return close_fusion_glyph(last_glyph, first_note, liquescentia,
-                current_note);
+                current_note, punctum_inclinatum_orientation);
     } else {
         return close_normal_glyph(last_glyph, glyph_type, first_note,
                 liquescentia, current_note);
@@ -826,7 +878,7 @@
  * have the shape quilisma for very rare forms). But these shapes must
  * not appear in the final form of the score, and we transform them
  * respectively in punctum and quilisma (and the glyph type must be
- * pes_quadratum, but it is done in gregorio_add_note_to_a_glyph).
+ * pes_quadratum, but it is done in add_note_to_a_glyph).
  *
 ****************************/
 
@@ -833,7 +885,8 @@
 /* this function updates current_key with the new values (with clef changes) */
 
 gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note,
-        int *current_key, const gregorio_score *const score)
+        int *current_key, gregorio_shape *const punctum_inclinatum_orientation,
+        const gregorio_score *const score)
 {
     /* the first note of the current glyph, to be able to close it well:
      * later we will cut the link (next_notes and previous_note) between
@@ -851,7 +904,7 @@
     gregorio_note *next_note = NULL;
 
     /* determination of end of glyphs, see comments on
-     * gregorio_add_note_to_a_glyph */
+     * add_note_to_a_glyph */
     gabc_determination end_of_glyph = DET_NO_END;
 
     /* a char representing the liquescentia of the current glyph */
@@ -882,7 +935,7 @@
             if (current_glyph_type != G_UNDETERMINED) {
                 close_glyph(&last_glyph, next_glyph_type,
                         &current_glyph_first_note, liquescentia,
-                        current_note->previous);
+                        current_note->previous, punctum_inclinatum_orientation);
                 current_glyph_type = G_UNDETERMINED;
                 liquescentia = L_NO_LIQUESCENTIA;
             }
@@ -965,7 +1018,8 @@
                 /* if it is not the first glyph */
                 close_glyph(&last_glyph, current_glyph_type,
                         &current_glyph_first_note,
-                        liquescentia, current_note->previous);
+                        liquescentia, current_note->previous,
+                        punctum_inclinatum_orientation);
                 current_glyph_type = G_UNDETERMINED;
             }
             liquescentia = head_liquescentia;
@@ -991,7 +1045,7 @@
                     liquescentia |= current_note->u.note.liquescentia;
                     current_note = close_glyph(&last_glyph, G_FUSED,
                             &current_glyph_first_note, liquescentia,
-                            current_note);
+                            current_note, punctum_inclinatum_orientation);
                     current_glyph_type = G_UNDETERMINED;
                     liquescentia = L_NO_LIQUESCENTIA;
                     add = false;
@@ -999,16 +1053,24 @@
                     switch (current_note->u.note.shape) {
                     case S_PUNCTUM:
                     case S_ORISCUS_UNDETERMINED:
+                    case S_ORISCUS_ASCENDENS:
+                    case S_ORISCUS_DESCENDENS:
                     case S_ORISCUS_SCAPUS_UNDETERMINED:
+                    case S_ORISCUS_SCAPUS_ASCENDENS:
+                    case S_ORISCUS_SCAPUS_DESCENDENS:
                     case S_QUILISMA:
                     case S_QUADRATUM:
                     case S_QUILISMA_QUADRATUM:
                         /* these are fusible */
-                        if (current_glyph_type <= G_PUNCTA_INCLINATA) {
+                        if (current_glyph_type <= G_PUNCTA_INCLINATA
+                                || current_note->u.note.shape != S_PUNCTUM) {
                             /* if we had some puncta inclinata, then end them */
+                            /* if the current shape is not a punctum, start a
+                             * new shape */
                             close_glyph(&last_glyph, current_glyph_type,
                                     &current_glyph_first_note,
-                                    liquescentia, current_note->previous);
+                                    liquescentia, current_note->previous,
+                                    punctum_inclinatum_orientation);
                             if (!(current_note->u.note.liquescentia
                                         & L_INITIO_DEBILIS)) {
                                 current_note->u.note.liquescentia |= L_FUSED;
@@ -1029,12 +1091,12 @@
         }
 
         if (add) {
-            next_glyph_type =
-                    gregorio_add_note_to_a_glyph(current_glyph_type,
+            next_glyph_type = add_note_to_a_glyph(current_glyph_type,
                     current_note->u.note.pitch, last_pitch,
                     current_note->u.note.shape,
                     current_note->u.note.liquescentia,
-                    current_glyph_first_note, &end_of_glyph);
+                    current_glyph_first_note, &end_of_glyph,
+                    punctum_inclinatum_orientation);
         }
 
         /* patch to have good shapes in the special cases of pes quadratum and
@@ -1054,7 +1116,7 @@
         }
 
         if (add) {
-            /* see comments on gregorio_add_note_to_a_glyph for the meaning of
+            /* see comments on add_note_to_a_glyph for the meaning of
              * end_of_glyph */
             switch (end_of_glyph) {
             case DET_NO_END:
@@ -1086,15 +1148,20 @@
                     }
                     /* special cases of the punctum inclinatum deminutus and
                      * auctus */
-                    if (current_note->u.note.shape == S_PUNCTUM_INCLINATUM) {
+                    if (current_note->u.note.shape
+                            == S_PUNCTUM_INCLINATUM_ASCENDENS
+                            || current_note->u.note.shape
+                            == S_PUNCTUM_INCLINATUM_DESCENDENS
+                            || current_note->u.note.shape
+                            == S_PUNCTUM_INCLINATUM_UNDETERMINED) {
                         if (current_note->u.note.liquescentia == L_DEMINUTUS) {
                             current_note->u.note.shape =
                                     S_PUNCTUM_INCLINATUM_DEMINUTUS;
                         }
-                        if (current_note->u.note.liquescentia ==
-                                L_AUCTUS_DESCENDENS
-                                || current_note->u.note.liquescentia ==
-                                L_AUCTUS_ASCENDENS) {
+                        if (current_note->u.note.liquescentia
+                                == L_AUCTUS_DESCENDENS
+                                || current_note->u.note.liquescentia
+                                == L_AUCTUS_ASCENDENS) {
                             current_note->u.note.shape =
                                     S_PUNCTUM_INCLINATUM_AUCTUS;
                         }
@@ -1101,10 +1168,14 @@
 
                         if (current_note->next
                                 && current_note->next->type == GRE_NOTE
-                                && current_note->next->u.note.shape ==
-                                S_PUNCTUM_INCLINATUM
-                                && current_note->next->u.note.liquescentia ==
-                                L_DEMINUTUS) {
+                                && (current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_ASCENDENS
+                                    || current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_DESCENDENS
+                                    || current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_UNDETERMINED)
+                                && current_note->next->u.note.liquescentia
+                                == L_DEMINUTUS) {
                             last_pitch = current_note->u.note.pitch;
                             current_note = next_note;
                             continue;
@@ -1122,8 +1193,12 @@
 
                         if (current_note->next
                                 && current_note->next->type == GRE_NOTE
-                                && current_note->next->u.note.shape ==
-                                S_PUNCTUM_INCLINATUM
+                                && (current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_ASCENDENS
+                                    || current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_DESCENDENS
+                                    || current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_UNDETERMINED)
                                 && current_note->next->u.note.liquescentia ==
                                 L_DEMINUTUS) {
                             last_pitch = current_note->u.note.pitch;
@@ -1135,7 +1210,8 @@
                     /* once again, only works with the good values in the header
                      * file */
                     current_note = close_glyph(&last_glyph, current_glyph_type,
-                            &current_glyph_first_note, liquescentia, current_note);
+                            &current_glyph_first_note, liquescentia,
+                            current_note, punctum_inclinatum_orientation);
                     current_glyph_type = G_UNDETERMINED;
                     liquescentia = L_NO_LIQUESCENTIA;
                 }
@@ -1146,7 +1222,8 @@
                     /* we don't want to close previous glyph twice */
                     close_glyph(&last_glyph, current_glyph_type,
                             &current_glyph_first_note, liquescentia,
-                            current_note->previous);
+                            current_note->previous,
+                            punctum_inclinatum_orientation);
                 }
                 current_glyph_type = next_glyph_type;
                 liquescentia = L_NO_LIQUESCENTIA;
@@ -1158,7 +1235,12 @@
                 {
                     /* special cases of the punctum inclinatum deminutus and
                      * auctus */
-                    if (current_note->u.note.shape == S_PUNCTUM_INCLINATUM) {
+                    if (current_note->u.note.shape
+                            == S_PUNCTUM_INCLINATUM_ASCENDENS
+                            || current_note->u.note.shape
+                            == S_PUNCTUM_INCLINATUM_DESCENDENS
+                            || current_note->u.note.shape
+                            == S_PUNCTUM_INCLINATUM_UNDETERMINED) {
                         if (current_note->u.note.liquescentia == L_DEMINUTUS) {
                             current_note->u.note.shape =
                                     S_PUNCTUM_INCLINATUM_DEMINUTUS;
@@ -1172,8 +1254,12 @@
                         }
                         if (current_note->next
                                 && current_note->next->type == GRE_NOTE
-                                && current_note->next->u.note.shape ==
-                                S_PUNCTUM_INCLINATUM
+                                && (current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_ASCENDENS
+                                    || current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_DESCENDENS
+                                    || current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_UNDETERMINED)
                                 && current_note->next->u.note.liquescentia ==
                                 L_DEMINUTUS) {
                             current_note = next_note;
@@ -1192,8 +1278,12 @@
 
                         if (current_note->next
                                 && current_note->next->type == GRE_NOTE
-                                && current_note->next->u.note.shape ==
-                                S_PUNCTUM_INCLINATUM
+                                && (current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_ASCENDENS
+                                    || current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_DESCENDENS
+                                    || current_note->next->u.note.shape
+                                    == S_PUNCTUM_INCLINATUM_UNDETERMINED)
                                 && current_note->next->u.note.liquescentia ==
                                 L_DEMINUTUS) {
                             current_note = next_note;
@@ -1202,7 +1292,8 @@
                     }
                     current_note = close_glyph(&last_glyph, current_glyph_type,
                             &current_glyph_first_note,
-                            current_note->u.note.liquescentia, current_note);
+                            current_note->u.note.liquescentia, current_note,
+                            punctum_inclinatum_orientation);
                     current_glyph_type = G_UNDETERMINED;
                 }
                 break;
@@ -1210,7 +1301,8 @@
                 liquescentia += current_note->u.note.liquescentia;
                 /* once again, only works with the good values in the header file */
                 current_note = close_glyph(&last_glyph, next_glyph_type,
-                        &current_glyph_first_note, liquescentia, current_note);
+                        &current_glyph_first_note, liquescentia, current_note,
+                        punctum_inclinatum_orientation);
                 current_glyph_type = G_UNDETERMINED;
                 liquescentia = L_NO_LIQUESCENTIA;
                 break;
@@ -1220,13 +1312,15 @@
                     /* we don't want to close previous glyph twice */
                     close_glyph(&last_glyph, current_glyph_type,
                             &current_glyph_first_note, liquescentia,
-                            current_note->previous);
+                            current_note->previous,
+                            punctum_inclinatum_orientation);
                 }
                 current_glyph_type = G_UNDETERMINED;
                 liquescentia = L_NO_LIQUESCENTIA;
                 current_note = close_glyph(&last_glyph, next_glyph_type,
                         &current_glyph_first_note,
-                        current_note->u.note.liquescentia, current_note);
+                        current_note->u.note.liquescentia, current_note,
+                        punctum_inclinatum_orientation);
                 break;
             }
         }
@@ -1234,7 +1328,8 @@
         if (!next_note && current_glyph_type != G_UNDETERMINED) {
             /* we must end the determination here */
             current_note = close_glyph(&last_glyph, current_glyph_type,
-                    &current_glyph_first_note, liquescentia, current_note);
+                    &current_glyph_first_note, liquescentia, current_note,
+                    punctum_inclinatum_orientation);
         }
 
         last_pitch = current_note->u.note.pitch;

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination-l.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination-l.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination-l.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1909,9 +1909,9 @@
       -48,  -48,  -48,  -48,  -48,  113,  113,  113,  113,  113,
       113,  113,  113,  113,  113,  113,  113,  113,  113,  -48,
       113,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
-      -48,  -48,  -48,  -48,  -48,  -48,  -48,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  -48,  113,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  -48,  114,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
 
       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
@@ -1935,7 +1935,7 @@
       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
-      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  114,  114,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  115,  115,
       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
 
       -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
@@ -1966,13 +1966,13 @@
        39,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
-      -50,  -50,  -50,  115,  -50,  -50,  -50,  -50,  -50,  -50,
-      -50,  -50,  -50,  -50,  -50,  -50,  -50,  116,  117,  -50,
+      -50,  -50,  -50,  116,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  117,  118,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
-      -50,  118,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  119,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
 
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
@@ -2000,7 +2000,7 @@
       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
 
       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
-      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  119,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  120,  -51,
       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
       -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
@@ -2062,7 +2062,7 @@
 
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
-      -53,  -53,  -53,  -53,  -53,  -53,  -53,  120,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  121,  -53,  -53,
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
@@ -2069,7 +2069,7 @@
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
-      121,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      122,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
 
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
       -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
@@ -2159,12 +2159,12 @@
 
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
-      -56,  -56,  -56,  -56,  -56,  122,  122,  122,  122,  122,
-      122,  122,  122,  122,  122,  122,  122,  122,  122,  -56,
-      122,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
-      -56,  123,  -56,  -56,  -56,  -56,  -56,  122,  122,  124,
-      122,  122,  124,  122,  122,  122,  122,  122,  122,  122,
-      122,  -56,  122,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  -56,
+      123,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  124,  -56,  -56,  -56,  -56,  -56,  125,  125,  126,
+      125,  125,  126,  125,  125,  125,  125,  125,  125,  125,
+      125,  -56,  125,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
 
@@ -2188,15 +2188,15 @@
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  127,  127,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
 
-      -57,  -57,  -57,  -57,  -57,  -57,  125,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  128,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-      -57,  -57,  -57,  -57,  -57,  126,  -57,  -57,  127,  -57,
+      -57,  -57,  -57,  -57,  -57,  129,  -57,  -57,  130,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
@@ -2220,7 +2220,7 @@
 
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
-      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  128,  129,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  131,  132,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
@@ -2346,7 +2346,7 @@
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
-      -62,  -62,  -62,  130,  -62,  131,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  133,  -62,  134,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
@@ -2383,9 +2383,9 @@
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
-      -63,  -63,  -63,  -63,  -63,  -63,  -63,  132,  -63,  133,
-      -63,  134,  -63,  135,  136,  -63,  -63,  -63,  137,  -63,
-      138,  139,  -63,  -63,  -63,  -63,  -63,  140,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  135,  -63,  136,
+      -63,  137,  -63,  138,  139,  -63,  -63,  -63,  140,  -63,
+      141,  142,  -63,  -63,  -63,  -63,  -63,  143,  -63,  -63,
 
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
@@ -2441,8 +2441,8 @@
       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
-      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  141,  141,
-      141,  141,  141,  141,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  144,  144,
+      144,  144,  144,  144,  -65,  -65,  -65,  -65,  -65,  -65,
       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
       -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
@@ -2504,15 +2504,15 @@
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
-      -67,  -67,  -67,  142,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  145,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
 
-      -67,  -67,  -67,  -67,  -67,  -67,  125,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  128,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
-      -67,  -67,  -67,  -67,  -67,  126,  -67,  -67,  127,  -67,
+      -67,  -67,  -67,  -67,  -67,  129,  -67,  -67,  130,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
@@ -2536,14 +2536,14 @@
 
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
-      -68,  -68,  -68,  142,  -68,  -68,  -68,  -68,  -68,  143,
-      143,  143,  143,  143,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  145,  -68,  -68,  -68,  -68,  -68,  146,
+      146,  146,  146,  146,  -68,  -68,  -68,  -68,  -68,  -68,
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
-      -68,  -68,  -68,  -68,  -68,  -68,  125,  -68,  -68,  -68,
-      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  144,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  128,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  147,  -68,
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
-      -68,  -68,  -68,  -68,  -68,  126,  -68,  -68,  127,  -68,
+      -68,  -68,  -68,  -68,  -68,  129,  -68,  -68,  130,  -68,
 
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
@@ -2567,7 +2567,7 @@
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
-      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  145,  146,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  148,  149,
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
 
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
@@ -2631,8 +2631,8 @@
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
 
-      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  147,  148,
-      149,  150,  151,  152,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  150,  151,
+      152,  153,  154,  155,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
@@ -2820,7 +2820,7 @@
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
-      -77,  -77,  -77,  153,  -77,  154,  -77,  -77,  155,  -77,
+      -77,  -77,  -77,  156,  -77,  157,  -77,  -77,  158,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
@@ -2942,35 +2942,35 @@
     },
 
     {
-       39,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+       39,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
 
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  -81,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  -81,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
 
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
 
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  159,  159,  159
     },
 
     {
@@ -3005,105 +3005,8 @@
     },
 
     {
-       39,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  -83,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157
-    },
-
-    {
-       39,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  -84,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158
-
-    },
-
-    {
-       39,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  -85,  159,  159,  159,  159,  159,  159,
-
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  159,  159
-    },
-
-    {
        39,  160,  160,  160,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
-      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
-      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
 
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
@@ -3110,9 +3013,9 @@
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
-      160,  160,  160,  -86,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  -83,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
 
@@ -3128,6 +3031,8 @@
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
 
       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
       160,  160,  160,  160,  160,  160
     },
 
@@ -3138,13 +3043,11 @@
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
-      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
-      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
 
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
-      161,  161,  161,  -87,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  -84,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
@@ -3159,13 +3062,14 @@
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
       161,  161,  161,  161,  161,  161
+
     },
 
     {
        39,  162,  162,  162,  162,  162,  162,  162,  162,  162,
-      -88,  162,  162,  -88,  162,  162,  162,  162,  162,  162,
-
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
@@ -3174,8 +3078,7 @@
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
-      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
-      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
+      162,  162,  162,  -85,  162,  162,  162,  162,  162,  162,
 
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
@@ -3191,39 +3094,41 @@
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
+      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
+      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162
     },
 
     {
-       39,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      163,  -89,  -89,  163,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+       39,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
 
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  -86,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
 
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
 
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163
     },
 
     {
@@ -3235,10 +3140,9 @@
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  -90,  164,  164,  164,  164,  164,  164,
 
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  -87,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
@@ -3247,7 +3151,6 @@
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
 
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
@@ -3254,25 +3157,25 @@
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
       164,  164,  164,  164,  164,  164
     },
 
     {
        39,  165,  165,  165,  165,  165,  165,  165,  165,  165,
+      -88,  165,  165,  -88,  165,  165,  165,  165,  165,  165,
+
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
-
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
-      165,  165,  165,  -91,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
-      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
-      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
 
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
@@ -3286,44 +3189,46 @@
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
 
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
+      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
+      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165
     },
 
     {
-       39,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+       39,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      166,  -89,  -89,  166,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
 
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  -92,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
 
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89
+
     },
 
     {
        39,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
-
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
@@ -3331,9 +3236,7 @@
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
-      167,  167,  167,  -93,  167,  167,  167,  167,  167,  167,
-      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
-      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
+      167,  167,  167,  -90,  167,  167,  167,  167,  167,  167,
 
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
@@ -3349,10 +3252,107 @@
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
+      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
+      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
       167,  167,  167,  167,  167,  167
     },
 
     {
+       39,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  -91,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168
+    },
+
+    {
+       39,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  -92,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169
+    },
+
+    {
+       39,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  -93,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170
+    },
+
+    {
        39,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
@@ -3389,8 +3389,8 @@
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
-      -95,  -95,  -95,  -95,  -95,  -95,  168,  -95,  169,  169,
-      169,  169,  169,  169,  169,  169,  169,  169,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  171,  -95,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
@@ -3421,8 +3421,8 @@
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
 
-      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  170,  170,
-      170,  170,  170,  170,  170,  170,  170,  170,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
@@ -3452,13 +3452,13 @@
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
-      -97,  -97,  -97,  -97,  -97,  -97,  171,  -97,  169,  169,
-      169,  169,  169,  169,  169,  169,  169,  169,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  174,  -97,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
 
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
-      -97,  -97,  -97,  172,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  175,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
@@ -3484,8 +3484,8 @@
 
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,  -98,  -98,  -98,  -98,  -98,  173,  -98,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  176,  -98,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
@@ -3515,8 +3515,8 @@
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
-      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  -99,  -99,
 
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
@@ -3547,12 +3547,12 @@
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-     -100, -100, -100, -100, -100, -100,  176, -100,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174, -100, -100,
+     -100, -100, -100, -100, -100, -100,  179, -100,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-     -100, -100, -100,  177, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100,  180, -100, -100, -100, -100, -100, -100,
 
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
@@ -3574,118 +3574,21 @@
     },
 
     {
-       39,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178, -101,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178, -101,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178
-    },
-
-    {
-       39,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179, -102,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179
-    },
-
-    {
-       39,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180, -103,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180
-    },
-
-    {
        39,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
-      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
-      181,  181,  181,  181,  181,  181,  181,  181,  181, -104,
 
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181, -101,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
-      181,  181,  181, -104,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181, -101,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
-      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
 
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
@@ -3696,8 +3599,10 @@
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
       181,  181,  181,  181,  181,  181
-
     },
 
     {
@@ -3709,10 +3614,9 @@
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182, -105,  182,  182,  182,  182,  182,  182,
 
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182, -102,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
@@ -3721,7 +3625,6 @@
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
-      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
 
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
@@ -3728,6 +3631,8 @@
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
       182,  182,  182,  182,  182,  182
     },
 
@@ -3734,8 +3639,6 @@
     {
        39,  183,  183,  183,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
-      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
-      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
 
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
@@ -3742,9 +3645,9 @@
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
-      183,  183,  183, -106,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183, -103,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
 
@@ -3760,10 +3663,107 @@
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
 
       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
       183,  183,  183,  183,  183,  183
     },
 
     {
+       39,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, -104,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, -104,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184
+
+    },
+
+    {
+       39,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185, -105,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185
+    },
+
+    {
+       39,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186, -106,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186
+    },
+
+    {
        39, -107, -107, -107, -107, -107, -107, -107, -107,  107,
       107, -107, -107,  107, -107, -107, -107, -107, -107, -107,
      -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
@@ -3862,13 +3862,13 @@
        39, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-     -110, -110, -110,  115, -110, -110, -110, -110, -110, -110,
-     -110, -110, -110, -110, -110, -110, -110,  184,  117, -110,
+     -110, -110, -110,  116, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110,  187,  118, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-     -110,  185, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110,  188, -110, -110, -110, -110, -110, -110, -110, -110,
 
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
@@ -3958,6 +3958,7 @@
 
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113,  189,  189,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
@@ -3965,7 +3966,6 @@
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
 
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
@@ -4058,11 +4058,11 @@
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-     -116,  186, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
 
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
@@ -4090,6 +4090,7 @@
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
 
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117,  190, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
@@ -4098,7 +4099,6 @@
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
 
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
@@ -4187,7 +4187,6 @@
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
 
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
-      187, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
@@ -4196,6 +4195,7 @@
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
 
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
@@ -4217,8 +4217,8 @@
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121, -121, -121, -121, -121, -121,  188, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+      191, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
 
@@ -4249,6 +4249,7 @@
 
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122,  192, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
@@ -4256,7 +4257,6 @@
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
-     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
 
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
@@ -4274,6 +4274,7 @@
 
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123,  193,  193,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
@@ -4281,7 +4282,6 @@
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
 
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
@@ -4305,13 +4305,12 @@
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-     -124, -124, -124, -124, -124, -124, -124, -124, -124,  189,
-      189,  189,  189,  189, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
 
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-     -124, -124, -124, -124, -124, -124, -124, -124,  190, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
@@ -4318,6 +4317,7 @@
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
 
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
@@ -4341,8 +4341,8 @@
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
-     -125, -125, -125, -125, -125, -125,  191, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
 
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
@@ -4369,16 +4369,16 @@
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
 
+     -126, -126, -126, -126, -126, -126, -126, -126, -126,  194,
+      194,  194,  194,  194, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126,  195, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126,  192, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
 
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
@@ -4408,7 +4408,6 @@
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
-     -127, -127, -127, -127, -127, -127, -127, -127,  193, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
@@ -4415,6 +4414,7 @@
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
 
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
@@ -4436,10 +4436,10 @@
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128,  196, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
 
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
@@ -4471,11 +4471,11 @@
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129,  197, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
-     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
 
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
@@ -4503,6 +4503,7 @@
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
 
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130,  198, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
@@ -4511,7 +4512,6 @@
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
 
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
@@ -4565,7 +4565,6 @@
 
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
-     -132, -132, -132, -132, -132, -132, -132, -132,  194, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
@@ -4573,6 +4572,7 @@
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
 
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
@@ -4597,7 +4597,7 @@
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
-      195, -133, -133, -133, -133,  196, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
 
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
@@ -4628,12 +4628,12 @@
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-     -134, -134, -134, -134, -134, -134, -134, -134, -134,  197,
-     -134, -134, -134, -134, -134, -134, -134, -134,  198, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
 
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
@@ -4660,8 +4660,7 @@
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
 
-     -135, -135, -135, -135, -135, -135, -135, -135, -135,  199,
-     -135, -135, -135, -135, -135, -135, -135, -135,  200, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135,  199, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
@@ -4670,6 +4669,7 @@
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
 
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
@@ -4691,8 +4691,8 @@
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
-     -136, -136, -136, -136, -136, -136, -136, -136,  201, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+      200, -136, -136, -136, -136,  201, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
 
@@ -4723,7 +4723,8 @@
 
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137, -137, -137, -137, -137, -137,  202, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137,  202,
+     -137, -137, -137, -137, -137, -137, -137, -137,  203, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
@@ -4730,7 +4731,6 @@
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
 
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
@@ -4754,8 +4754,8 @@
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138, -138, -138, -138, -138, -138, -138, -138, -138,  203,
-     -138, -138, -138, -138, -138, -138, -138, -138,  204, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138,  204,
+     -138, -138, -138, -138, -138, -138, -138, -138,  205, -138,
 
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
@@ -4785,13 +4785,13 @@
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139, -139, -139, -139, -139, -139,  205,  206,
-     -139, -139, -139, -139,  207, -139, -139, -139,  208, -139,
-     -139, -139, -139, -139, -139,  209, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139,  206, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
 
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
@@ -4816,10 +4816,9 @@
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-     -140, -140, -140, -140, -140, -140, -140, -140,  210, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
 
-     -140, -140, -140, -140,  207, -140, -140, -140,  211, -140,
-     -140, -140, -140, -140, -140,  209, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140,  207, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
@@ -4828,6 +4827,7 @@
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
 
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
@@ -4843,8 +4843,6 @@
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
 
-     -141, -141, -141, -141, -141, -141, -141, -141,  141,  141,
-      141,  141,  141,  141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
@@ -4851,6 +4849,8 @@
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141,  208,
+     -141, -141, -141, -141, -141, -141, -141, -141,  209, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
 
@@ -4880,6 +4880,9 @@
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
 
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142,  210,  211,
+     -142, -142, -142, -142,  212, -142, -142, -142,  213, -142,
+     -142, -142, -142, -142, -142,  214, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
@@ -4886,9 +4889,6 @@
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
 
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
@@ -4911,9 +4911,9 @@
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143,  215, -143,
+     -143, -143, -143, -143,  212, -143, -143, -143,  216, -143,
+     -143, -143, -143, -143, -143,  214, -143, -143, -143, -143,
 
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
@@ -4937,8 +4937,8 @@
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144,  212,
-      212,  212,  212,  212, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144,  144,  144,
+      144,  144,  144,  144, -144, -144, -144, -144, -144, -144,
 
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
@@ -5032,10 +5032,10 @@
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147,  217,
+      217,  217,  217,  217, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
 
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
@@ -5312,98 +5312,98 @@
     },
 
     {
-       39,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+       39, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
 
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156, -156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
 
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
 
-      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  156,  156,  156,  156,  156
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156
     },
 
     {
-       39,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+       39, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
 
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157, -157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
 
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157
     },
 
     {
-       39,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+       39, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
 
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158, -158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
 
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
 
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158
     },
 
     {
@@ -5503,7 +5503,6 @@
 
     {
        39,  162,  162,  162,  162,  162,  162,  162,  162,  162,
-     -162,  162,  162, -162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
@@ -5510,8 +5509,10 @@
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
+      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
 
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
+      162,  162,  162, -162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
@@ -5520,7 +5521,6 @@
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
-      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
 
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
@@ -5533,35 +5533,35 @@
     },
 
     {
-       39, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-      163, -163, -163,  163, -163, -163, -163, -163, -163, -163,
+       39,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
 
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163, -163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
 
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
 
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
+      163,  163,  163,  163,  163,  163
     },
 
     {
@@ -5598,6 +5598,7 @@
 
     {
        39,  165,  165,  165,  165,  165,  165,  165,  165,  165,
+     -165,  165,  165, -165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
@@ -5606,7 +5607,6 @@
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
-      165,  165,  165, -165,  165,  165,  165,  165,  165,  165,
 
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
@@ -5628,35 +5628,35 @@
     },
 
     {
-       39,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+       39, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+      166, -166, -166,  166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
 
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166, -166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
 
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
 
-      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
-      166,  166,  166,  166,  166,  166
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166
     },
 
     {
@@ -5691,98 +5691,98 @@
     },
 
     {
-       39, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+       39,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168,  170,  170,
-      170,  170,  170,  170,  170,  170,  170,  170, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168, -168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
+      168,  168,  168,  168,  168,  168
     },
 
     {
-       39, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169,  171, -169,  169,  169,
-      169,  169,  169,  169,  169,  169,  169,  169, -169, -169,
+       39,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
 
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169,  172, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169, -169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
 
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169
 
     },
 
     {
-       39, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170,  170,  170,
-      170,  170,  170,  170,  170,  170,  170,  170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170,  172, -170, -170, -170, -170, -170, -170,
+       39,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170, -170,  170,  170,  170,  170,  170,  170,
 
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
 
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170
     },
 
     {
@@ -5791,16 +5791,16 @@
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
 
-     -171, -171, -171, -171, -171, -171, -171, -171,  213,  213,
-      213,  213,  213,  213,  213,  213,  213,  213, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
-     -171, -171, -171,  172, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
 
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
@@ -5822,12 +5822,13 @@
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172,  174, -172,  172,  172,
+      172,  172,  172,  172,  172,  172,  172,  172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
 
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172,  175, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
@@ -5836,7 +5837,6 @@
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
 
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
@@ -5854,14 +5854,14 @@
 
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-     -173, -173, -173, -173, -173, -173, -173, -173,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173,  175, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
 
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
@@ -5885,13 +5885,13 @@
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
-     -174, -174, -174, -174, -174, -174,  176, -174,  174,  174,
-      174,  174,  174,  174,  174,  174,  174,  174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174,  218,  218,
+      218,  218,  218,  218,  218,  218,  218,  218, -174, -174,
 
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
-     -174, -174, -174,  177, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174,  175, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
@@ -5917,12 +5917,12 @@
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
-     -175, -175, -175, -175, -175, -175, -175, -175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
-     -175, -175, -175,  177, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
 
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
@@ -5949,16 +5949,16 @@
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
 
-     -176, -176, -176, -176, -176, -176, -176, -176,  214,  214,
-      214,  214,  214,  214,  214,  214,  214,  214, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
-     -176, -176, -176,  177, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
 
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
@@ -5980,12 +5980,13 @@
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177,  179, -177,  177,  177,
+      177,  177,  177,  177,  177,  177,  177,  177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
 
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177,  180, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
@@ -5994,7 +5995,6 @@
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
 
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
@@ -6007,98 +6007,98 @@
     },
 
     {
-       39,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+       39, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
 
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178, -178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178,  180, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
 
-      178,  178,  178, -178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
 
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
-      178,  178,  178,  178,  178,  178
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178
     },
 
     {
-       39,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+       39, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179,  219,  219,
+      219,  219,  219,  219,  219,  219,  219,  219, -179, -179,
 
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179, -179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179,  180, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
 
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
-      179,  179,  179,  179,  179,  179
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179
 
     },
 
     {
-       39,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180, -180,  180,  180,  180,  180,  180,  180,
+       39, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
 
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
 
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
-      180,  180,  180,  180,  180,  180
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180
     },
 
     {
@@ -6197,98 +6197,98 @@
     },
 
     {
-       39, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+       39,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, -184,
 
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184,  215, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, -184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
 
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184
 
     },
 
     {
-       39, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+       39,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185, -185,  185,  185,  185,  185,  185,  185,
 
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
 
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185
     },
 
     {
-       39, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+       39,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
 
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186, -186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
 
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
 
-     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186
     },
 
     {
@@ -6302,8 +6302,8 @@
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
 
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187,  220, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
-     -187, -187, -187, -187, -187, -187, -187, -187,  216, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
@@ -6333,9 +6333,9 @@
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
-     -188, -188, -188, -188, -188, -188, -188, -188,  217, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
 
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
@@ -6391,12 +6391,12 @@
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
-     -190, -190, -190, -190, -190, -190, -190, -190, -190,  218,
-      218,  218,  218,  218, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
 
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
@@ -6427,9 +6427,9 @@
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
-     -191, -191, -191, -191, -191, -191,  219, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191,  221, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
@@ -6456,13 +6456,13 @@
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
-      220, -192,  220, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
 
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192,  222, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
-     -192, -192, -192, -192, -192,  221, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
@@ -6493,7 +6493,7 @@
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
-     -193, -193, -193, -193, -193, -193, -193, -193,  222, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
 
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
@@ -6525,11 +6525,11 @@
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
-     -194, -194, -194, -194, -194, -194,  223, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
 
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
@@ -6549,12 +6549,12 @@
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195,  223,
+      223,  223,  223,  223, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
-     -195, -195, -195, -195, -195, -195, -195, -195,  224, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
-     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
 
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
@@ -6582,10 +6582,10 @@
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
 
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
-     -196, -196, -196, -196, -196, -196, -196, -196,  225, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196,  224, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
@@ -6612,14 +6612,15 @@
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197, -197, -197, -197, -197, -197, -197,  226,
-      226,  226,  226,  226,  226,  226,  226,  226, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+      225, -197,  225, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
 
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197,  226, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
@@ -6626,7 +6627,6 @@
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
 
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
@@ -6645,7 +6645,6 @@
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
-     -198, -198, -198, -198, -198, -198, -198, -198,  227, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
@@ -6652,6 +6651,7 @@
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198,  227, -198,
 
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
@@ -6675,8 +6675,8 @@
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
-     -199, -199, -199, -199, -199, -199, -199, -199, -199,  228,
-      228,  228,  228,  228,  228,  228,  228,  228, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
 
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
@@ -6683,11 +6683,11 @@
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199,  228, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
-     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
 
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
@@ -6770,10 +6770,10 @@
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202,  231,
+      231,  231,  231,  231,  231,  231,  231,  231, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202,  231, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
 
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
@@ -6802,14 +6802,14 @@
 
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
-     -203, -203, -203, -203, -203, -203, -203, -203, -203,  232,
-      232,  232,  232,  232,  232,  232,  232,  232, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203,  232, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
 
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
@@ -6833,8 +6833,8 @@
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204,  233, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204,  233,
+      233,  233,  233,  233,  233,  233,  233,  233, -204, -204,
 
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
@@ -6898,11 +6898,11 @@
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
 
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206,  235, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
-     -206, -206, -206, -206, -206, -206, -206, -206,  235, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
@@ -6937,12 +6937,12 @@
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207,  237, -207,  238, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
 
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
@@ -6960,6 +6960,8 @@
 
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208,  237,
+      237,  237,  237,  237,  237,  237,  237,  237, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
@@ -6966,8 +6968,6 @@
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
-     -208, -208, -208, -208, -208, -208, -208, -208,  239, -208,
-     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
 
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
@@ -6992,18 +6992,18 @@
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209,  238, -209,
 
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209,  240, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
 
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
@@ -7024,7 +7024,7 @@
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
-     -210, -210, -210, -210, -210, -210, -210, -210,  241, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210,  239, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
@@ -7060,8 +7060,8 @@
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211,  240, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
-     -211, -211, -211, -211, -211, -211, -211, -211,  242, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
@@ -7087,20 +7087,20 @@
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212,  241, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
 
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212,  242, -212,  243, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
 
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
@@ -7118,14 +7118,14 @@
 
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
-     -213, -213, -213, -213, -213, -213, -213, -213,  213,  213,
-      213,  213,  213,  213,  213,  213,  213,  213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
-     -213, -213, -213,  172, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213,  244, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
 
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
@@ -7149,14 +7149,14 @@
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214, -214, -214, -214, -214, -214, -214,  214,  214,
-      214,  214,  214,  214,  214,  214,  214,  214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
 
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214, -214,  177, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214,  245, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
@@ -7182,11 +7182,11 @@
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215,  246, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
-     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
 
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
@@ -7218,8 +7218,8 @@
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
-     -216, -216, -216, -216, -216, -216, -216, -216,  243, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216,  247, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
@@ -7250,7 +7250,6 @@
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
 
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
-     -217, -217, -217, -217, -217, -217, -217,  244, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
@@ -7259,6 +7258,7 @@
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
 
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
@@ -7276,14 +7276,14 @@
 
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218,  218,  218,
+      218,  218,  218,  218,  218,  218,  218,  218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218,  175, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
-     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
-     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
-     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
 
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
@@ -7307,12 +7307,13 @@
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
-     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
-     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219,  219,  219,
+      219,  219,  219,  219,  219,  219,  219,  219, -219, -219,
 
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219,  180, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
@@ -7319,7 +7320,6 @@
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
-     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
 
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
@@ -7373,10 +7373,10 @@
 
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
-      245, -221,  245, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221,  248, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
@@ -7408,6 +7408,7 @@
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
 
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222,  249, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
@@ -7416,7 +7417,6 @@
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
-     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
 
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
@@ -7435,13 +7435,13 @@
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
-     -223, -223, -223, -223, -223, -223, -223, -223,  246, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
-     -223, -223, -223, -223, -223, -223, -223, -223, -223,  247,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
 
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
@@ -7531,10 +7531,10 @@
 
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+      250, -226,  250, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226,  248, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
@@ -7593,13 +7593,13 @@
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228,  251, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
-     -228, -228, -228,  249, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228,  252,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
-     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
 
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
@@ -7655,12 +7655,12 @@
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230,  250,  251,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
 
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
@@ -7687,12 +7687,12 @@
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
 
-     -231, -231, -231, -231, -231, -231, -231, -231,  252,  253,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231,  253, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
@@ -7724,7 +7724,6 @@
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
 
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232,  254, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
@@ -7733,6 +7732,7 @@
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
 
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
@@ -7755,9 +7755,9 @@
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233,  254, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
 
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
@@ -7781,8 +7781,8 @@
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234,  255,  255,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
 
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
@@ -7813,12 +7813,12 @@
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235,  255,  256,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
-     -235, -235, -235, -235, -235, -235, -235, -235,  256, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
-     -235, -235, -235, -235, -235, -235, -235,  257, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
 
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
@@ -7845,16 +7845,16 @@
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
 
-     -236, -236, -236,  258, -236,  258, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236,  257,  258,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236,  259, -236, -236, -236,  259,  259,
-     -236,  260, -236, -236, -236, -236, -236,  260, -236, -236,
-     -236, -236, -236,  237, -236,  238, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
 
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
@@ -7882,7 +7882,7 @@
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
 
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237,  261, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237,  259, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
@@ -7913,9 +7913,9 @@
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238,  262, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
+     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
 
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
@@ -7939,8 +7939,8 @@
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239,  260,  260,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
-     -239, -239, -239, -239, -239, -239, -239, -239,  263, -239,
 
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
@@ -7972,14 +7972,15 @@
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240,  261, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240,  262, -240, -240,
+
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240,  264, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
@@ -7987,7 +7988,6 @@
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
 
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
@@ -8003,16 +8003,16 @@
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
 
-     -241, -241, -241, -241, -241, -241, -241, -241,  265,  265,
+     -241, -241, -241,  263, -241,  263, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
+     -241, -241, -241, -241,  264, -241, -241, -241,  264,  264,
+     -241,  265, -241, -241, -241, -241, -241,  265, -241, -241,
+     -241, -241, -241,  242, -241,  243, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
 
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
@@ -8035,11 +8035,12 @@
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
-     -242, -242, -242, -242, -242, -242, -242, -242,  266, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
 
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242,  266, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
@@ -8048,7 +8049,6 @@
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
-     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
 
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
@@ -8071,7 +8071,7 @@
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
-     -243, -243, -243, -243, -243, -243, -243,  267, -243, -243,
+     -243, -243, -243,  267, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
 
@@ -8098,9 +8098,8 @@
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
-     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244,  268, -244,
 
-     -244, -244,  268, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
@@ -8110,6 +8109,7 @@
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
 
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
@@ -8137,6 +8137,7 @@
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
 
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245,  269, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
@@ -8145,7 +8146,6 @@
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
-     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
 
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
@@ -8161,6 +8161,7 @@
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
 
+     -246, -246, -246, -246, -246, -246, -246, -246,  270,  270,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
@@ -8170,7 +8171,6 @@
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
-     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
 
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
@@ -8192,10 +8192,10 @@
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
-     -247, -247, -247, -247, -247, -247, -247, -247, -247,  269,
-      269,  269,  269,  269,  269,  269,  269,  269, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247,  271, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
 
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
@@ -8229,9 +8229,9 @@
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248,  272, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
 
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
@@ -8258,6 +8258,7 @@
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
 
+     -249, -249,  273, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
@@ -8267,7 +8268,6 @@
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
-     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
 
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
@@ -8292,7 +8292,7 @@
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
-     -250, -250, -250,  270, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
 
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
@@ -8324,11 +8324,11 @@
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
-     -251, -251, -251,  271, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
 
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
@@ -8350,13 +8350,14 @@
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252,  274,
+      274,  274,  274,  274,  274,  274,  274,  274, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
-
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
-     -252, -252, -252,  272, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
@@ -8364,7 +8365,6 @@
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
-     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
 
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
@@ -8387,9 +8387,9 @@
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
-     -253, -253, -253,  273, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
 
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
@@ -8446,15 +8446,14 @@
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
-     -255, -255, -255, -255, -255, -255, -255, -255, -255,  274,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255,  275, -255, -255, -255, -255, -255, -255,
 
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
-     -255, -255, -255,  275, -255,  276, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
@@ -8462,6 +8461,7 @@
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
 
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
@@ -8477,12 +8477,12 @@
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
 
-     -256, -256, -256, -256, -256, -256, -256, -256,  277,  277,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256,  276, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
@@ -8509,11 +8509,12 @@
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
-     -257, -257, -257, -257, -257, -257, -257, -257,  278, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
 
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257,  277, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
@@ -8522,7 +8523,6 @@
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
-     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
 
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
@@ -8535,35 +8535,35 @@
     },
 
     {
-       39,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+       39, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
 
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279, -258,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258,  278, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
 
-      279,  279,  279, -258,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
 
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258
     },
 
     {
@@ -8571,19 +8571,19 @@
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
-     -259, -259, -259,  258, -259,  258, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
 
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
-     -259, -259, -259,  261, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
-     -259, -259, -259,  237, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
 
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
@@ -8604,15 +8604,15 @@
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260,  279,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
-     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
 
-     -260, -260, -260, -260,  259, -260, -260, -260,  259, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260,  280, -260,  281, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
@@ -8635,6 +8635,7 @@
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
 
+     -261, -261, -261, -261, -261, -261, -261, -261,  282,  282,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
@@ -8644,7 +8645,6 @@
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
-     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
 
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
@@ -8667,9 +8667,9 @@
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262,  283, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
-     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
 
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
@@ -8693,35 +8693,35 @@
     },
 
     {
-       39, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+       39,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
 
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284, -263,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
 
-     -263, -263, -263, -263, -263,  280, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+      284,  284,  284, -263,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
 
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284
     },
 
     {
@@ -8729,19 +8729,19 @@
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264,  263, -264,  263, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
-     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
 
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264,  266, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
-     -264, -264, -264, -264,  281, -264, -264, -264, -264, -264,
+     -264, -264, -264,  242, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
-     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
 
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
@@ -8762,15 +8762,15 @@
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265,  282,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
 
+     -265, -265, -265, -265,  264, -265, -265, -265,  264, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265,  283, -265,  284, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
@@ -8801,8 +8801,8 @@
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
-     -266, -266, -266, -266, -266,  285, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
 
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
@@ -8826,8 +8826,8 @@
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267,  286, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
 
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
@@ -8865,6 +8865,7 @@
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
 
+     -268, -268, -268, -268, -268,  285, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
@@ -8874,7 +8875,6 @@
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
 
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
@@ -8893,9 +8893,9 @@
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269,  287, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269,  286, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
@@ -8920,14 +8920,15 @@
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270,  287,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
-     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
 
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270,  288, -270,  289, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
@@ -8935,7 +8936,6 @@
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
-     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
 
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
@@ -8959,8 +8959,8 @@
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271,  290, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
 
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
@@ -8984,8 +8984,8 @@
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272, -272,  291, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
 
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
@@ -9051,6 +9051,7 @@
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274,  292, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
@@ -9057,7 +9058,6 @@
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
 
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
@@ -9082,7 +9082,7 @@
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275,  288, -275, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
 
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
@@ -9114,11 +9114,11 @@
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276,  289, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
 
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
@@ -9141,20 +9141,20 @@
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277,  290,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
 
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277,  291, -277,  292, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
 
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
@@ -9172,7 +9172,6 @@
 
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
-     -278, -278, -278, -278, -278, -278, -278, -278,  293,  293,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
@@ -9180,6 +9179,7 @@
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
 
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
@@ -9199,34 +9199,34 @@
     },
 
     {
-       39,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+       39, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
 
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  261,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  294,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
 
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  279,  279,  279,  279
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279
 
     },
 
@@ -9240,7 +9240,7 @@
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
-     -280, -280, -280,  295, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280,  293, -280, -280, -280, -280, -280, -280,
 
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
@@ -9268,11 +9268,11 @@
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
 
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281,  296, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281,  294, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
@@ -9299,20 +9299,20 @@
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282,  295,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
-     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
 
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282,  296, -282,  297, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
-     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
 
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
@@ -9330,12 +9330,12 @@
 
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283,  298,  298,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283,  297, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
 
@@ -9357,34 +9357,34 @@
     },
 
     {
-       39, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+       39,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
 
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284,  298, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  266,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  299,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
 
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
+      284,  284,  284,  284,  284,  284
 
     },
 
@@ -9398,7 +9398,7 @@
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
-     -285, -285, -285,  299, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285,  300, -285, -285, -285, -285, -285, -285,
 
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
@@ -9426,6 +9426,7 @@
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
 
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286,  301, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
@@ -9434,7 +9435,6 @@
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
 
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
@@ -9493,9 +9493,9 @@
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288,  302, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
 
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
@@ -9525,6 +9525,7 @@
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289,  303, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
@@ -9531,7 +9532,6 @@
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
-     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
 
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
@@ -9556,7 +9556,7 @@
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
-     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290,  304, -290, -290, -290, -290, -290, -290,
 
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
@@ -9588,11 +9588,11 @@
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
-     -291, -291, -291,  300, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
 
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
@@ -9620,7 +9620,6 @@
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
 
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
-     -292, -292, -292,  301, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
@@ -9629,6 +9628,7 @@
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
 
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
@@ -9647,7 +9647,6 @@
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-     -293, -293, -293, -293, -293, -293, -293, -293, -293,  302,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
@@ -9654,8 +9653,8 @@
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
 
-     -293, -293, -293,  303, -293,  304, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
@@ -9665,6 +9664,7 @@
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
 
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
@@ -9683,7 +9683,6 @@
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-     -294, -294, -294,  261, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
@@ -9690,6 +9689,7 @@
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
 
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
@@ -9741,16 +9741,16 @@
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
 
-     -296, -296, -296, -296, -296, -296, -296, -296,  305,  305,
-      305, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296,  305, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
 
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
@@ -9778,6 +9778,7 @@
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
 
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297,  306, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
@@ -9786,7 +9787,6 @@
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
-     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
 
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
@@ -9805,6 +9805,7 @@
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+     -298, -298, -298, -298, -298, -298, -298, -298, -298,  307,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
@@ -9811,8 +9812,8 @@
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
-     -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
 
+     -298, -298, -298,  308, -298,  309, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
@@ -9822,7 +9823,6 @@
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
-     -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
 
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
@@ -9841,6 +9841,7 @@
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299,  266, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
@@ -9847,7 +9848,6 @@
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
-     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
 
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
@@ -9899,6 +9899,8 @@
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
 
+     -301, -301, -301, -301, -301, -301, -301, -301,  310,  310,
+      310, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
@@ -9907,8 +9909,6 @@
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
-     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
-     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
 
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
@@ -9967,9 +9967,9 @@
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
-     -303, -303, -303,  306, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
 
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
@@ -9999,7 +9999,6 @@
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-     -304, -304, -304,  307, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
@@ -10006,6 +10005,7 @@
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
 
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
@@ -10026,15 +10026,14 @@
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305,  308,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
 
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305,  309, -305,  310, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
@@ -10042,6 +10041,7 @@
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
 
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
@@ -10115,35 +10115,35 @@
     },
 
     {
-       39,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+       39, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
 
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311, -308,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308,  311, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
 
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
 
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308
     },
 
     {
@@ -10184,14 +10184,15 @@
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310, -310, -310, -310, -310,  313,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
-     -310, -310, -310,  313, -310, -310, -310, -310, -310, -310,
 
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310,  314, -310,  315, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
@@ -10199,7 +10200,6 @@
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
-     -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
 
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
@@ -10210,35 +10210,35 @@
     },
 
     {
-       39,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+       39, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
 
-      311,  311,  311,  311,  314,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
 
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
 
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311
     },
 
     {
@@ -10273,132 +10273,290 @@
     },
 
     {
-       39, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+       39,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
 
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316, -313,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
 
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
 
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316
     },
 
     {
-       39,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
+       39, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
 
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315, -314,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314,  317, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
 
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314
 
     },
 
     {
-       39,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  316,  315,  315,  315,  315,  315,  315,
+       39, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315,  318, -315, -315, -315, -315, -315, -315,
 
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
 
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315,  315,  315,  315,  315,
-      315,  315,  315,  315,  315,  315
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315
     },
 
     {
-       39, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+       39,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
 
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+      316,  316,  316,  316,  319,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
 
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
 
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316
+      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
+      316,  316,  316,  316,  316,  316
     },
 
+    {
+       39, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317
+    },
+
+    {
+       39, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318
+    },
+
+    {
+       39,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320, -319,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320
+
+    },
+
+    {
+       39,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  321,  320,  320,  320,  320,  320,  320,
+
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
+      320,  320,  320,  320,  320,  320
+    },
+
+    {
+       39, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321
+    },
+
     } ;
 
 static yy_state_type yy_get_previous_state (void );
@@ -10419,8 +10577,8 @@
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 138
-#define YY_END_OF_BUFFER 139
+#define YY_NUM_RULES 141
+#define YY_END_OF_BUFFER 142
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -10428,49 +10586,50 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int32_t yy_accept[317] =
+static yyconst flex_int32_t yy_accept[322] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    3,    3,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  139,  137,
-       63,   97,  137,   90,    1,  115,   76,  137,  117,   94,
-       79,   78,  120,  103,  119,  137,  112,  125,   82,  131,
-      129,   68,  137,   29,  116,   75,  112,  112,  122,  121,
-       81,  132,  130,  128,   89,   91,   65,   60,   61,  118,
+        0,    0,    0,    0,    0,    0,    0,    0,  142,  140,
+       63,   97,  140,   90,    1,  118,   76,  140,  120,   94,
+       79,   78,  123,  103,  122,  140,  115,  128,   82,  134,
+      132,   68,  140,   29,  119,   75,  112,  112,  125,  124,
+       81,  135,  133,  131,   89,   91,   65,   60,   61,  121,
        36,   54,   37,   38,   34,   35,   39,    3,    2,   30,
-       31,   32,   33,  138,  138,  138,  138,  138,  138,  138,
+       31,   32,   33,  141,  141,  141,  141,  141,  141,  141,
 
-       46,  138,  138,   51,  138,  138,   63,  102,  101,   98,
-      115,   77,  113,  117,   93,   96,   92,   40,   80,    0,
-        0,  114,   28,  114,    0,    0,    0,  126,  127,   69,
-       70,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      116,   62,   71,    0,  123,  124,   83,   84,   85,   86,
-       87,   88,   66,   67,   64,   36,   37,   38,   34,   35,
-       39,    3,    2,   30,   31,   32,   33,    0,    0,    0,
-        0,   41,    0,    0,    0,    0,   43,   46,   47,   48,
-       51,   52,   53,  100,   42,   95,    0,    0,   73,    0,
-      106,  108,  104,    0,    0,    0,    0,    0,    0,    0,
+       46,  141,  141,   51,  141,  141,   63,  102,  101,   98,
+      118,   77,  116,  113,  120,   93,   96,   92,   40,   80,
+        0,    0,  117,   28,  114,  114,  115,    0,    0,    0,
+      129,  130,   69,   70,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  119,   62,   71,    0,  126,  127,   83,
+       84,   85,   86,   87,   88,   66,   67,   64,   36,   37,
+       38,   34,   35,   39,    3,    2,   30,   31,   32,   33,
+        0,    0,    0,    0,   41,    0,    0,    0,    0,   43,
+       46,   47,   48,   51,   52,   53,  100,   42,  116,   95,
+        0,    0,  117,   73,    0,  106,  108,  104,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   72,    0,    0,   99,    0,    0,   74,  107,  109,
-      110,  105,    0,    5,    4,    0,   24,    0,   23,    0,
-        0,    0,   22,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  111,   25,    0,   20,   19,    0,
-        0,    0,    0,   18,    0,    0,    0,    0,    0,    0,
-       58,   59,   45,    0,    0,   50,    0,   26,    0,  134,
-      133,  136,  135,    6,    0,    0,    0,    0,    0,    0,
-        0,    7,    0,    0,    0,   27,   21,   10,   14,    8,
-        0,    0,    0,    0,   44,    0,   11,   15,   49,   12,
+        0,    0,    0,    0,    0,    0,   72,    0,    0,   99,
+        0,    0,   74,  107,  109,  110,  105,    0,    5,    4,
+        0,   24,    0,   23,    0,    0,    0,   22,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  111,
+       25,    0,   20,   19,    0,    0,    0,    0,   18,    0,
+        0,    0,    0,    0,    0,   58,   59,   45,    0,    0,
+       50,    0,   26,    0,  137,  136,  139,  138,    6,    0,
+        0,    0,    0,    0,    0,    0,    7,    0,    0,    0,
+       27,   21,   10,   14,    8,    0,    0,    0,    0,   44,
 
-       16,    9,    0,    0,    0,   13,   17,    0,    0,    0,
-        0,   56,   57,    0,    0,   55
+        0,   11,   15,   49,   12,   16,    9,    0,    0,    0,
+       13,   17,    0,    0,    0,    0,   56,   57,    0,    0,
+       55
     } ;
 
 static yy_state_type yy_last_accepting_state;
 static char *yy_last_accepting_cpos;
 
-static yyconst yy_state_type yy_NUL_trans[317] =
+static yyconst yy_state_type yy_NUL_trans[322] =
     {   0,
        40,   40,   81,   81,   83,   83,   84,   84,   85,   85,
        86,   86,   87,   87,   88,   88,   90,   90,   91,   91,
@@ -10480,19 +10639,19 @@
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      156,    0,  157,  158,  159,  160,  161,  162,    0,  164,
-      165,  166,  167,    0,    0,    0,    0,    0,    0,    0,
+      159,    0,  160,  161,  162,  163,  164,  165,    0,  167,
+      168,  169,  170,    0,    0,    0,    0,    0,    0,    0,
 
-      178,  179,  180,  181,  182,  183,    0,    0,    0,    0,
+      181,  182,  183,  184,  185,  186,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  156,  157,  158,  159,  160,
-      161,  162,    0,  164,  165,  166,  167,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  178,  179,  180,
-      181,  182,  183,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  159,  160,
+      161,  162,  163,  164,  165,    0,  167,  168,  169,  170,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      181,  182,  183,  184,  185,  186,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -10499,14 +10658,15 @@
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  279,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  279,    0,
+        0,    0,  284,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  284,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,  311,    0,    0,
-      311,    0,    0,  315,  315,    0
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  316,    0,    0,  316,    0,    0,  320,  320,
+        0
     } ;
 
 extern int gabc_notes_determination__flex_debug;
@@ -10526,7 +10686,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file implements the note parser.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *
@@ -10565,12 +10725,11 @@
 static unsigned int nbof_isolated_episema;
 static char *notesmacros[10];
 static char tempstr[256];
-static int brace_var_counter = 0;
-static int overbrace_var = 0, underbrace_var = 0;
+static unsigned short overbrace_var = 0, underbrace_var = 0;
 static const char *overbrace_var_kind;
 static int before_ledger_type;
 static char *before_ledger_length = NULL;
-static int ledger_var[2] = { 0, 0 };
+static unsigned short ledger_var[2] = { 0, 0 };
 static unsigned char staff_lines;
 static signed char highest_pitch;
 static bool legacy_oriscus_orientation;
@@ -10577,7 +10736,7 @@
 static unsigned short he_adjustment_index[2] = { 0, 0 };
 
 typedef struct slur_info {
-    int var;
+    unsigned short var;
     char shift;
     gregorio_note *start;
 } slur_info;
@@ -10628,13 +10787,17 @@
     return result;
 }
 
-static gregorio_shape punctum(const char pitch)
+static gregorio_shape punctum_inclinatum(const char orientation)
 {
-    if (pitch < 'a') {
-        return S_PUNCTUM_INCLINATUM;
-    } else {
-        return S_PUNCTUM;
+    switch (orientation) {
+    case '0':
+        return S_PUNCTUM_INCLINATUM_DESCENDENS;
+
+    case '1':
+        return S_PUNCTUM_INCLINATUM_ASCENDENS;
     }
+
+    return S_PUNCTUM_INCLINATUM_UNDETERMINED;
 }
 
 static __inline void lex_add_note(int i, gregorio_shape shape, char signs,
@@ -10797,10 +10960,10 @@
             after_ledger_length = after_ledger;
         }
 
-        ledger_var[type] = ++brace_var_counter;
+        ledger_var[type] = ++tex_position_id;
         gregorio_snprintf(tempstr, sizeof tempstr,
-                "\\GreVarBraceSavePos{%d}{0}{1}"
-                "\\GreDrawAdditionalLine{%d}{\\GreVarBraceLength{%d}}"
+                "\\GreVarBraceSavePos{%hu}{0}{1}"
+                "\\GreDrawAdditionalLine{%d}{\\GreVarBraceLength{%hu}}"
                 "{%d}{%s}{%d}{%s}",
                 ledger_var[type], type, ledger_var[type], before_ledger_type,
                 before_ledger_length, after_ledger_type, after_ledger_length);
@@ -10824,7 +10987,7 @@
                 "%s-staff ledger line start"), typename, typename);
     } else {
         gregorio_snprintf(tempstr, sizeof tempstr,
-                "\\GreVarBraceSavePos{%d}{0}{2}", ledger_var[type]);
+                "\\GreVarBraceSavePos{%hu}{0}{2}", ledger_var[type]);
         ledger_var[type] = 0;
         gregorio_add_texverb_as_note(&current_note, gregorio_strdup(tempstr),
                 GRE_TEXVERB_GLYPH, &notes_lloc);
@@ -10963,7 +11126,7 @@
         return;
     }
 
-    slur[index].var = ++brace_var_counter;
+    slur[index].var = ++tex_position_id;
     parse_slur_shift(&(slur[index].shift));
     slur[index].start = current_note;
 }
@@ -10993,8 +11156,8 @@
     parse_slur_shift(&shift);
 
     gregorio_snprintf(tempstr, sizeof tempstr,
-            "\\GreVarBraceSavePos{%d}{%c}{1}"
-            "\\GreSlur{%d}{%d}{%c}{\\GreVarBraceLength{%d}}{}{%d}",
+            "\\GreVarBraceSavePos{%hu}{%c}{1}"
+            "\\GreSlur{%d}{%d}{%c}{\\GreVarBraceLength{%hu}}{}{%d}",
             slur[index].var, slur[index].shift,
             slur[index].start->u.note.pitch + direction, direction,
             slur[index].shift, slur[index].var,
@@ -11002,7 +11165,7 @@
     gregorio_add_texverb_to_note(slur[index].start, gregorio_strdup(tempstr));
 
     gregorio_snprintf(tempstr, sizeof tempstr,
-            "\\GreVarBraceSavePos{%d}{%c}{2}", slur[index].var, shift);
+            "\\GreVarBraceSavePos{%hu}{%c}{2}", slur[index].var, shift);
     gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
 
 
@@ -11179,7 +11342,7 @@
 
 
 
-#line 11183 "gabc/gabc-notes-determination-l.c"
+#line 11346 "gabc/gabc-notes-determination-l.c"
 
 #define INITIAL 0
 #define texverbnote 1
@@ -11417,9 +11580,9 @@
 		}
 
 	{
-#line 677 "gabc/gabc-notes-determination.l"
+#line 680 "gabc/gabc-notes-determination.l"
 
-#line 11423 "gabc/gabc-notes-determination-l.c"
+#line 11586 "gabc/gabc-notes-determination-l.c"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -11466,7 +11629,7 @@
 
 case 1:
 YY_RULE_SETUP
-#line 678 "gabc/gabc-notes-determination.l"
+#line 681 "gabc/gabc-notes-determination.l"
 {
         BEGIN(comments);
     }
@@ -11474,7 +11637,7 @@
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 681 "gabc/gabc-notes-determination.l"
+#line 684 "gabc/gabc-notes-determination.l"
 {
         BEGIN(INITIAL);
     }
@@ -11481,7 +11644,7 @@
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 684 "gabc/gabc-notes-determination.l"
+#line 687 "gabc/gabc-notes-determination.l"
 {
         /* ignored */
     }
@@ -11488,7 +11651,7 @@
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 687 "gabc/gabc-notes-determination.l"
+#line 690 "gabc/gabc-notes-determination.l"
 {
         BEGIN(choralsign);
     }
@@ -11495,7 +11658,7 @@
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 690 "gabc/gabc-notes-determination.l"
+#line 693 "gabc/gabc-notes-determination.l"
 {
         BEGIN(choralnabc);
     }
@@ -11502,7 +11665,7 @@
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 693 "gabc/gabc-notes-determination.l"
+#line 696 "gabc/gabc-notes-determination.l"
 {
         char_for_brace = gabc_notes_determination_text[4]-'0';
         BEGIN(overbrace);
@@ -11510,7 +11673,7 @@
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 697 "gabc/gabc-notes-determination.l"
+#line 700 "gabc/gabc-notes-determination.l"
 {
         char_for_brace = gabc_notes_determination_text[4]-'0';
         BEGIN(underbrace);
@@ -11518,7 +11681,7 @@
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 701 "gabc/gabc-notes-determination.l"
+#line 704 "gabc/gabc-notes-determination.l"
 {
         char_for_brace = gabc_notes_determination_text[5]-'0';
         BEGIN(overcurlybrace);
@@ -11526,7 +11689,7 @@
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 705 "gabc/gabc-notes-determination.l"
+#line 708 "gabc/gabc-notes-determination.l"
 {
         char_for_brace = gabc_notes_determination_text[6]-'0';
         BEGIN(overcurlyaccentusbrace);
@@ -11534,7 +11697,7 @@
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 709 "gabc/gabc-notes-determination.l"
+#line 712 "gabc/gabc-notes-determination.l"
 {
         if (overbrace_var) {
             gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0,
@@ -11542,11 +11705,11 @@
                                 "previous overbrace"));
         } else {
             char_for_brace = gabc_notes_determination_text[4]-'0';
-            overbrace_var = ++brace_var_counter;
+            overbrace_var = ++tex_position_id;
             overbrace_var_kind = "ob";
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{1}"
-                    "\\GreOverBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}",
+                    "\\GreVarBraceSavePos{%hu}{%d}{1}"
+                    "\\GreOverBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}",
                     overbrace_var, char_for_brace, overbrace_var, char_for_brace);
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
         }
@@ -11554,7 +11717,7 @@
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 725 "gabc/gabc-notes-determination.l"
+#line 728 "gabc/gabc-notes-determination.l"
 {
         if (underbrace_var) {
             gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0,
@@ -11562,10 +11725,10 @@
                                 "previous underbrace"));
         } else {
             char_for_brace = gabc_notes_determination_text[4]-'0';
-            underbrace_var = ++brace_var_counter;
+            underbrace_var = ++tex_position_id;
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{1}"
-                    "\\GreUnderBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}",
+                    "\\GreVarBraceSavePos{%hu}{%d}{1}"
+                    "\\GreUnderBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}",
                     underbrace_var, char_for_brace, underbrace_var, char_for_brace);
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
         }
@@ -11573,7 +11736,7 @@
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 740 "gabc/gabc-notes-determination.l"
+#line 743 "gabc/gabc-notes-determination.l"
 {
         if (overbrace_var) {
             gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0,
@@ -11581,11 +11744,11 @@
                                 "previous overbrace"));
         } else {
             char_for_brace = gabc_notes_determination_text[5]-'0';
-            overbrace_var = ++brace_var_counter;
+            overbrace_var = ++tex_position_id;
             overbrace_var_kind = "ocb";
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{1}"
-                    "\\GreOverCurlyBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}{0}",
+                    "\\GreVarBraceSavePos{%hu}{%d}{1}"
+                    "\\GreOverCurlyBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}{0}",
                     overbrace_var, char_for_brace, overbrace_var, char_for_brace);
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
         }
@@ -11593,7 +11756,7 @@
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 756 "gabc/gabc-notes-determination.l"
+#line 759 "gabc/gabc-notes-determination.l"
 {
         if (overbrace_var) {
             gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0,
@@ -11601,11 +11764,11 @@
                                 "previous overbrace"));
         } else {
             char_for_brace = gabc_notes_determination_text[6]-'0';
-            overbrace_var = ++brace_var_counter;
+            overbrace_var = ++tex_position_id;
             overbrace_var_kind = "ocba";
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{1}"
-                    "\\GreOverCurlyBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}{1}",
+                    "\\GreVarBraceSavePos{%hu}{%d}{1}"
+                    "\\GreOverCurlyBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}{1}",
                     overbrace_var, char_for_brace, overbrace_var, char_for_brace);
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
         }
@@ -11613,7 +11776,7 @@
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 772 "gabc/gabc-notes-determination.l"
+#line 775 "gabc/gabc-notes-determination.l"
 {
         if (!overbrace_var) {
             gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0,
@@ -11627,7 +11790,7 @@
         } else {
             char_for_brace = gabc_notes_determination_text[4]-'0';
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var,
+                    "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var,
                     char_for_brace);
             overbrace_var = 0;
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
@@ -11636,7 +11799,7 @@
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 791 "gabc/gabc-notes-determination.l"
+#line 794 "gabc/gabc-notes-determination.l"
 {
         if (!underbrace_var) {
             gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0,
@@ -11645,7 +11808,7 @@
         } else {
             char_for_brace = gabc_notes_determination_text[4]-'0';
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{2}", underbrace_var,
+                    "\\GreVarBraceSavePos{%hu}{%d}{2}", underbrace_var,
                     char_for_brace);
             underbrace_var = 0;
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
@@ -11654,7 +11817,7 @@
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 805 "gabc/gabc-notes-determination.l"
+#line 808 "gabc/gabc-notes-determination.l"
 {
         if (!overbrace_var) {
             gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0,
@@ -11668,7 +11831,7 @@
         } else {
             char_for_brace = gabc_notes_determination_text[5]-'0';
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var,
+                    "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var,
                     char_for_brace);
             overbrace_var = 0;
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
@@ -11677,7 +11840,7 @@
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 824 "gabc/gabc-notes-determination.l"
+#line 827 "gabc/gabc-notes-determination.l"
 {
         if (!overbrace_var) {
             gregorio_messagef("gabc_notes_determination", VERBOSITY_ERROR, 0,
@@ -11691,7 +11854,7 @@
         } else {
             char_for_brace = gabc_notes_determination_text[6]-'0';
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var,
+                    "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var,
                     char_for_brace);
             overbrace_var = 0;
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
@@ -11700,7 +11863,7 @@
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 843 "gabc/gabc-notes-determination.l"
+#line 846 "gabc/gabc-notes-determination.l"
 {
         if (notesmacros[gabc_notes_determination_text[3]-'0']) {
             gregorio_add_texverb_to_note(current_note,
@@ -11710,7 +11873,7 @@
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 849 "gabc/gabc-notes-determination.l"
+#line 852 "gabc/gabc-notes-determination.l"
 {
         if (notesmacros[gabc_notes_determination_text[3]-'0']) {
             gregorio_add_texverb_as_note(&current_note,
@@ -11721,7 +11884,7 @@
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 856 "gabc/gabc-notes-determination.l"
+#line 859 "gabc/gabc-notes-determination.l"
 {
         if (notesmacros[gabc_notes_determination_text[3]-'0']) {
             gregorio_add_texverb_as_note(&current_note,
@@ -11732,7 +11895,7 @@
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 863 "gabc/gabc-notes-determination.l"
+#line 866 "gabc/gabc-notes-determination.l"
 {
         if (notesmacros[gabc_notes_determination_text[5]-'0']) {
             gregorio_add_texverb_as_note(&current_note,
@@ -11743,7 +11906,7 @@
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 870 "gabc/gabc-notes-determination.l"
+#line 873 "gabc/gabc-notes-determination.l"
 {
         BEGIN(texverbnote);
     }
@@ -11750,7 +11913,7 @@
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 873 "gabc/gabc-notes-determination.l"
+#line 876 "gabc/gabc-notes-determination.l"
 {
         BEGIN(texverbglyph);
     }
@@ -11757,7 +11920,7 @@
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 876 "gabc/gabc-notes-determination.l"
+#line 879 "gabc/gabc-notes-determination.l"
 {
         BEGIN(texverbelement);
     }
@@ -11764,7 +11927,7 @@
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 879 "gabc/gabc-notes-determination.l"
+#line 882 "gabc/gabc-notes-determination.l"
 {
         BEGIN(alt);
     }
@@ -11771,7 +11934,7 @@
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 882 "gabc/gabc-notes-determination.l"
+#line 885 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_nlba_as_note(&current_note, NLBA_BEGINNING, &notes_lloc);
     }
@@ -11778,7 +11941,7 @@
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 885 "gabc/gabc-notes-determination.l"
+#line 888 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_nlba_as_note(&current_note, NLBA_END, &notes_lloc);
     }
@@ -11785,7 +11948,7 @@
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 888 "gabc/gabc-notes-determination.l"
+#line 891 "gabc/gabc-notes-determination.l"
 {
         gregorio_start_autofuse(&current_note, &notes_lloc);
     }
@@ -11792,7 +11955,7 @@
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 891 "gabc/gabc-notes-determination.l"
+#line 894 "gabc/gabc-notes-determination.l"
 {
         gregorio_end_autofuse(&current_note, &notes_lloc);
     }
@@ -11800,7 +11963,7 @@
 case 30:
 /* rule 30 can match eol */
 YY_RULE_SETUP
-#line 894 "gabc/gabc-notes-determination.l"
+#line 897 "gabc/gabc-notes-determination.l"
 {
         gregorio_snprintf(tempstr, sizeof tempstr,
                 "\\GreOverBrace{%s}{0pt}{0pt}{%d}",
@@ -11811,7 +11974,7 @@
 case 31:
 /* rule 31 can match eol */
 YY_RULE_SETUP
-#line 900 "gabc/gabc-notes-determination.l"
+#line 903 "gabc/gabc-notes-determination.l"
 {
         gregorio_snprintf(tempstr, sizeof tempstr,
                 "\\GreUnderBrace{%s}{0pt}{0pt}{%d}",
@@ -11822,7 +11985,7 @@
 case 32:
 /* rule 32 can match eol */
 YY_RULE_SETUP
-#line 906 "gabc/gabc-notes-determination.l"
+#line 909 "gabc/gabc-notes-determination.l"
 {
         gregorio_snprintf(tempstr, sizeof tempstr,
                 "\\GreOverCurlyBrace{%s}{0pt}{0pt}{%d}{0}",
@@ -11833,7 +11996,7 @@
 case 33:
 /* rule 33 can match eol */
 YY_RULE_SETUP
-#line 912 "gabc/gabc-notes-determination.l"
+#line 915 "gabc/gabc-notes-determination.l"
 {
         gregorio_snprintf(tempstr, sizeof tempstr,
                 "\\GreOverCurlyBrace{%s}{0pt}{0pt}{%d}{1}",
@@ -11844,7 +12007,7 @@
 case 34:
 /* rule 34 can match eol */
 YY_RULE_SETUP
-#line 918 "gabc/gabc-notes-determination.l"
+#line 921 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_cs_to_note(&current_note,
                 gregorio_strdup(gabc_notes_determination_text), false);
@@ -11853,7 +12016,7 @@
 case 35:
 /* rule 35 can match eol */
 YY_RULE_SETUP
-#line 922 "gabc/gabc-notes-determination.l"
+#line 925 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_cs_to_note(&current_note,
                 gregorio_strdup(gabc_notes_determination_text), true);
@@ -11862,7 +12025,7 @@
 case 36:
 /* rule 36 can match eol */
 YY_RULE_SETUP
-#line 926 "gabc/gabc-notes-determination.l"
+#line 929 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_texverb_to_note(current_note,
                 gregorio_strdup(gabc_notes_determination_text));
@@ -11871,7 +12034,7 @@
 case 37:
 /* rule 37 can match eol */
 YY_RULE_SETUP
-#line 930 "gabc/gabc-notes-determination.l"
+#line 933 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_texverb_as_note(&current_note,
                 gregorio_strdup(gabc_notes_determination_text),
@@ -11881,7 +12044,7 @@
 case 38:
 /* rule 38 can match eol */
 YY_RULE_SETUP
-#line 935 "gabc/gabc-notes-determination.l"
+#line 938 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_texverb_as_note(&current_note,
                 gregorio_strdup(gabc_notes_determination_text),
@@ -11891,7 +12054,7 @@
 case 39:
 /* rule 39 can match eol */
 YY_RULE_SETUP
-#line 940 "gabc/gabc-notes-determination.l"
+#line 943 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_texverb_as_note(&current_note,
                 gregorio_strdup(gabc_notes_determination_text), GRE_ALT,
@@ -11900,7 +12063,7 @@
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 945 "gabc/gabc-notes-determination.l"
+#line 948 "gabc/gabc-notes-determination.l"
 {
         BEGIN(space);
     }
@@ -11910,7 +12073,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */
 YY_RULE_SETUP
-#line 948 "gabc/gabc-notes-determination.l"
+#line 951 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_AD_HOC_SPACE,
                 gregorio_strdup(gabc_notes_determination_text), &notes_lloc);
@@ -11918,7 +12081,7 @@
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 952 "gabc/gabc-notes-determination.l"
+#line 955 "gabc/gabc-notes-determination.l"
 {
         BEGIN(nbspace);
     }
@@ -11928,7 +12091,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */
 YY_RULE_SETUP
-#line 955 "gabc/gabc-notes-determination.l"
+#line 958 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_AD_HOC_SPACE_NB,
                 gregorio_strdup(gabc_notes_determination_text), &notes_lloc);
@@ -11936,7 +12099,7 @@
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 959 "gabc/gabc-notes-determination.l"
+#line 962 "gabc/gabc-notes-determination.l"
 {
         end_variable_ledger(SO_OVER);
     }
@@ -11943,7 +12106,7 @@
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 962 "gabc/gabc-notes-determination.l"
+#line 965 "gabc/gabc-notes-determination.l"
 {
         BEGIN(overledger);
     }
@@ -11951,7 +12114,7 @@
 case 46:
 /* rule 46 can match eol */
 YY_RULE_SETUP
-#line 965 "gabc/gabc-notes-determination.l"
+#line 968 "gabc/gabc-notes-determination.l"
 {
         save_before_ledger(gabc_notes_determination_text);
         BEGIN(overledger2);
@@ -11960,7 +12123,7 @@
 case 47:
 /* rule 47 can match eol */
 YY_RULE_SETUP
-#line 969 "gabc/gabc-notes-determination.l"
+#line 972 "gabc/gabc-notes-determination.l"
 {
         add_static_ledger(SO_OVER, gabc_notes_determination_text);
         BEGIN(endledger);
@@ -11969,7 +12132,7 @@
 case 48:
 /* rule 48 can match eol */
 YY_RULE_SETUP
-#line 973 "gabc/gabc-notes-determination.l"
+#line 976 "gabc/gabc-notes-determination.l"
 {
         add_variable_ledger(SO_OVER, gabc_notes_determination_text);
         BEGIN(endledger);
@@ -11977,7 +12140,7 @@
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 977 "gabc/gabc-notes-determination.l"
+#line 980 "gabc/gabc-notes-determination.l"
 {
         end_variable_ledger(SO_UNDER);
     }
@@ -11984,7 +12147,7 @@
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 980 "gabc/gabc-notes-determination.l"
+#line 983 "gabc/gabc-notes-determination.l"
 {
         BEGIN(underledger);
     }
@@ -11992,7 +12155,7 @@
 case 51:
 /* rule 51 can match eol */
 YY_RULE_SETUP
-#line 983 "gabc/gabc-notes-determination.l"
+#line 986 "gabc/gabc-notes-determination.l"
 {
         save_before_ledger(gabc_notes_determination_text);
         BEGIN(underledger2);
@@ -12001,7 +12164,7 @@
 case 52:
 /* rule 52 can match eol */
 YY_RULE_SETUP
-#line 987 "gabc/gabc-notes-determination.l"
+#line 990 "gabc/gabc-notes-determination.l"
 {
         add_static_ledger(SO_UNDER, gabc_notes_determination_text);
         BEGIN(endledger);
@@ -12010,7 +12173,7 @@
 case 53:
 /* rule 53 can match eol */
 YY_RULE_SETUP
-#line 991 "gabc/gabc-notes-determination.l"
+#line 994 "gabc/gabc-notes-determination.l"
 {
         add_variable_ledger(SO_UNDER, gabc_notes_determination_text);
         BEGIN(endledger);
@@ -12018,7 +12181,7 @@
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 995 "gabc/gabc-notes-determination.l"
+#line 998 "gabc/gabc-notes-determination.l"
 {
         BEGIN(INITIAL);
     }
@@ -12026,7 +12189,7 @@
 case 55:
 /* rule 55 can match eol */
 YY_RULE_SETUP
-#line 998 "gabc/gabc-notes-determination.l"
+#line 1001 "gabc/gabc-notes-determination.l"
 {
         parse_slur();
     }
@@ -12033,7 +12196,7 @@
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 1001 "gabc/gabc-notes-determination.l"
+#line 1004 "gabc/gabc-notes-determination.l"
 {
         start_var_slur();
     }
@@ -12040,7 +12203,7 @@
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 1004 "gabc/gabc-notes-determination.l"
+#line 1007 "gabc/gabc-notes-determination.l"
 {
         end_var_slur();
     }
@@ -12048,7 +12211,7 @@
 case 58:
 /* rule 58 can match eol */
 YY_RULE_SETUP
-#line 1011 "gabc/gabc-notes-determination.l"
+#line 1014 "gabc/gabc-notes-determination.l"
 {
         parse_hepisema_adjustment();
     }
@@ -12055,7 +12218,7 @@
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 1014 "gabc/gabc-notes-determination.l"
+#line 1017 "gabc/gabc-notes-determination.l"
 {
         end_hepisema_adjustment();
     }
@@ -12062,7 +12225,7 @@
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 1017 "gabc/gabc-notes-determination.l"
+#line 1020 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_texverb_as_note(&current_note,
                 gregorio_strdup("\\hbox to 0pt{"), GRE_TEXVERB_ELEMENT,
@@ -12071,7 +12234,7 @@
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 1022 "gabc/gabc-notes-determination.l"
+#line 1025 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_texverb_as_note(&current_note,
                 gregorio_strdup("\\hss%\n}%\n\\GreNoBreak\\relax "),
@@ -12080,7 +12243,7 @@
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 1027 "gabc/gabc-notes-determination.l"
+#line 1030 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_manual_custos_as_note(&current_note,
                 pitch_letter_to_height(gabc_notes_determination_text[0]),
@@ -12090,12 +12253,12 @@
 case 63:
 /* rule 63 can match eol */
 YY_RULE_SETUP
-#line 1032 "gabc/gabc-notes-determination.l"
+#line 1035 "gabc/gabc-notes-determination.l"
 /* ignore ends of line and tabs */;
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 1033 "gabc/gabc-notes-determination.l"
+#line 1036 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_custo_as_note(&current_note, &notes_lloc);
     }
@@ -12102,7 +12265,7 @@
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 1036 "gabc/gabc-notes-determination.l"
+#line 1039 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_end_of_line_as_note(&current_note, false, false, false,
                 &notes_lloc);
@@ -12110,7 +12273,7 @@
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 1040 "gabc/gabc-notes-determination.l"
+#line 1043 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_end_of_line_as_note(&current_note, false, true, true,
                 &notes_lloc);
@@ -12118,7 +12281,7 @@
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 1044 "gabc/gabc-notes-determination.l"
+#line 1047 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_end_of_line_as_note(&current_note, false, true, false,
                 &notes_lloc);
@@ -12126,7 +12289,7 @@
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 1048 "gabc/gabc-notes-determination.l"
+#line 1051 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_end_of_line_as_note(&current_note, true, false, false,
                 &notes_lloc);
@@ -12134,7 +12297,7 @@
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 1052 "gabc/gabc-notes-determination.l"
+#line 1055 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_end_of_line_as_note(&current_note, true, true, true,
                 &notes_lloc);
@@ -12142,7 +12305,7 @@
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 1056 "gabc/gabc-notes-determination.l"
+#line 1059 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_end_of_line_as_note(&current_note, true, true, false,
                 &notes_lloc);
@@ -12150,7 +12313,7 @@
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 1060 "gabc/gabc-notes-determination.l"
+#line 1063 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_clef_as_note(&current_note,
                 letter_to_clef(gabc_notes_determination_text[0]),
@@ -12160,7 +12323,7 @@
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 1066 "gabc/gabc-notes-determination.l"
+#line 1069 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_clef_as_note(&current_note,
                 letter_to_clef(gabc_notes_determination_text[0]),
@@ -12170,7 +12333,7 @@
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 1072 "gabc/gabc-notes-determination.l"
+#line 1075 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_secondary_clef_to_note(current_note,
                 letter_to_clef(gabc_notes_determination_text[1]),
@@ -12179,7 +12342,7 @@
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 1077 "gabc/gabc-notes-determination.l"
+#line 1080 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_secondary_clef_to_note(current_note,
                 letter_to_clef(gabc_notes_determination_text[1]),
@@ -12188,7 +12351,7 @@
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 1082 "gabc/gabc-notes-determination.l"
+#line 1085 "gabc/gabc-notes-determination.l"
 {
         add_bar_as_note(B_VIRGULA);
     }
@@ -12195,7 +12358,7 @@
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 1085 "gabc/gabc-notes-determination.l"
+#line 1088 "gabc/gabc-notes-determination.l"
 {
         add_bar_as_note(B_DIVISIO_MINIMA);
     }
@@ -12202,7 +12365,7 @@
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 1088 "gabc/gabc-notes-determination.l"
+#line 1091 "gabc/gabc-notes-determination.l"
 {
         add_bar_as_note(parse_dominican_bar(gabc_notes_determination_text[1]));
     }
@@ -12209,7 +12372,7 @@
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 1091 "gabc/gabc-notes-determination.l"
+#line 1094 "gabc/gabc-notes-determination.l"
 {
         add_bar_as_note(B_DIVISIO_MINOR);
     }
@@ -12216,7 +12379,7 @@
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 1094 "gabc/gabc-notes-determination.l"
+#line 1097 "gabc/gabc-notes-determination.l"
 {
         add_bar_as_note(B_DIVISIO_MAIOR);
     }
@@ -12223,7 +12386,7 @@
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 1097 "gabc/gabc-notes-determination.l"
+#line 1100 "gabc/gabc-notes-determination.l"
 {
         add_bar_as_note(B_DIVISIO_FINALIS);
     }
@@ -12230,7 +12393,7 @@
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 1100 "gabc/gabc-notes-determination.l"
+#line 1103 "gabc/gabc-notes-determination.l"
 {
         gregorio_change_shape(current_note, S_PUNCTUM_CAVUM,
                 legacy_oriscus_orientation);
@@ -12238,7 +12401,7 @@
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 1104 "gabc/gabc-notes-determination.l"
+#line 1107 "gabc/gabc-notes-determination.l"
 {
         gregorio_change_shape(current_note, S_LINEA_PUNCTUM,
                 legacy_oriscus_orientation);
@@ -12246,7 +12409,7 @@
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 1108 "gabc/gabc-notes-determination.l"
+#line 1111 "gabc/gabc-notes-determination.l"
 {
         gregorio_change_shape(current_note, S_LINEA_PUNCTUM_CAVUM,
                 legacy_oriscus_orientation);
@@ -12254,7 +12417,7 @@
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 1112 "gabc/gabc-notes-determination.l"
+#line 1115 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_special_sign(current_note, _ACCENTUS);
     }
@@ -12261,7 +12424,7 @@
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 1115 "gabc/gabc-notes-determination.l"
+#line 1118 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_special_sign(current_note, _ACCENTUS_REVERSUS);
     }
@@ -12268,7 +12431,7 @@
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 1118 "gabc/gabc-notes-determination.l"
+#line 1121 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_special_sign(current_note, _CIRCULUS);
     }
@@ -12275,7 +12438,7 @@
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 1121 "gabc/gabc-notes-determination.l"
+#line 1124 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_special_sign(current_note, _SEMI_CIRCULUS);
     }
@@ -12282,7 +12445,7 @@
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 1124 "gabc/gabc-notes-determination.l"
+#line 1127 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_special_sign(current_note, _SEMI_CIRCULUS_REVERSUS);
     }
@@ -12289,7 +12452,7 @@
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 1127 "gabc/gabc-notes-determination.l"
+#line 1130 "gabc/gabc-notes-determination.l"
 {
         gregorio_change_shape(current_note, S_FLAT, legacy_oriscus_orientation);
     }
@@ -12296,7 +12459,7 @@
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 1130 "gabc/gabc-notes-determination.l"
+#line 1133 "gabc/gabc-notes-determination.l"
 {
         gregorio_change_shape(current_note, S_SHARP,
                 legacy_oriscus_orientation);
@@ -12304,7 +12467,7 @@
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 1134 "gabc/gabc-notes-determination.l"
+#line 1137 "gabc/gabc-notes-determination.l"
 {
         gregorio_change_shape(current_note, S_NATURAL,
                 legacy_oriscus_orientation);
@@ -12312,7 +12475,7 @@
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 1138 "gabc/gabc-notes-determination.l"
+#line 1141 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_HALF_SPACE, NULL,
                 &notes_lloc);
@@ -12320,7 +12483,7 @@
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 1142 "gabc/gabc-notes-determination.l"
+#line 1145 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_INTERGLYPH_SPACE, NULL,
                 &notes_lloc);
@@ -12328,7 +12491,7 @@
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 1146 "gabc/gabc-notes-determination.l"
+#line 1149 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_NEUMATIC_CUT, NULL,
                 &notes_lloc);
@@ -12339,7 +12502,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */
 YY_RULE_SETUP
-#line 1150 "gabc/gabc-notes-determination.l"
+#line 1153 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_NEUMATIC_CUT, NULL,
                 &notes_lloc);
@@ -12347,7 +12510,7 @@
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 1154 "gabc/gabc-notes-determination.l"
+#line 1157 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_LARGER_SPACE, NULL,
                 &notes_lloc);
@@ -12355,7 +12518,7 @@
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1158 "gabc/gabc-notes-determination.l"
+#line 1161 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_GLYPH_SPACE, NULL,
                 &notes_lloc);
@@ -12363,7 +12526,7 @@
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1162 "gabc/gabc-notes-determination.l"
+#line 1165 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_NEUMATIC_CUT_NB, NULL,
                 &notes_lloc);
@@ -12374,7 +12537,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */
 YY_RULE_SETUP
-#line 1166 "gabc/gabc-notes-determination.l"
+#line 1169 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_NEUMATIC_CUT_NB, NULL,
                 &notes_lloc);
@@ -12382,7 +12545,7 @@
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1170 "gabc/gabc-notes-determination.l"
+#line 1173 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_LARGER_SPACE_NB, NULL,
                 &notes_lloc);
@@ -12390,7 +12553,7 @@
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1174 "gabc/gabc-notes-determination.l"
+#line 1177 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_GLYPH_SPACE_NB, NULL,
                 &notes_lloc);
@@ -12403,7 +12566,7 @@
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up gabc_notes_determination_text again */
 YY_RULE_SETUP
-#line 1178 "gabc/gabc-notes-determination.l"
+#line 1181 "gabc/gabc-notes-determination.l"
 {
         gregorio_add_space_as_note(&current_note, SP_ZERO_WIDTH, NULL,
                 &notes_lloc);
@@ -12411,7 +12574,7 @@
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1182 "gabc/gabc-notes-determination.l"
+#line 1185 "gabc/gabc-notes-determination.l"
 {
         gregorio_change_shape(current_note, S_LINEA,
                 legacy_oriscus_orientation);
@@ -12419,7 +12582,7 @@
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1186 "gabc/gabc-notes-determination.l"
+#line 1189 "gabc/gabc-notes-determination.l"
 {
         lex_add_note(0, S_BIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA);
     }
@@ -12426,7 +12589,7 @@
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 1189 "gabc/gabc-notes-determination.l"
+#line 1192 "gabc/gabc-notes-determination.l"
 {
         lex_add_note(0, S_TRIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA);
     }
@@ -12433,7 +12596,7 @@
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 1192 "gabc/gabc-notes-determination.l"
+#line 1195 "gabc/gabc-notes-determination.l"
 {
         lex_add_note(0, S_BIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA);
     }
@@ -12440,7 +12603,7 @@
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 1195 "gabc/gabc-notes-determination.l"
+#line 1198 "gabc/gabc-notes-determination.l"
 {
         lex_add_note(0, S_TRIVIRGA, _NO_SIGN, L_NO_LIQUESCENTIA);
     }
@@ -12447,7 +12610,7 @@
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 1198 "gabc/gabc-notes-determination.l"
+#line 1201 "gabc/gabc-notes-determination.l"
 {
         lex_add_note(0, S_DISTROPHA, _NO_SIGN, L_NO_LIQUESCENTIA);
     }
@@ -12454,7 +12617,7 @@
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 1201 "gabc/gabc-notes-determination.l"
+#line 1204 "gabc/gabc-notes-determination.l"
 {
         lex_add_note(0, S_DISTROPHA, _NO_SIGN, L_AUCTUS_ASCENDENS);
     }
@@ -12461,7 +12624,7 @@
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 1204 "gabc/gabc-notes-determination.l"
+#line 1207 "gabc/gabc-notes-determination.l"
 {
         lex_add_note(0, S_TRISTROPHA, _NO_SIGN, L_NO_LIQUESCENTIA);
     }
@@ -12468,7 +12631,7 @@
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 1207 "gabc/gabc-notes-determination.l"
+#line 1210 "gabc/gabc-notes-determination.l"
 {
         lex_add_note(0, S_TRISTROPHA, _NO_SIGN, L_AUCTUS_ASCENDENS);
     }
@@ -12475,26 +12638,23 @@
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 1210 "gabc/gabc-notes-determination.l"
+#line 1213 "gabc/gabc-notes-determination.l"
 {
-        lex_add_note(0, punctum(gabc_notes_determination_text[0]), _NO_SIGN,
-                L_NO_LIQUESCENTIA);
+        lex_add_note(0, S_PUNCTUM, _NO_SIGN, L_NO_LIQUESCENTIA);
     }
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 1214 "gabc/gabc-notes-determination.l"
+#line 1216 "gabc/gabc-notes-determination.l"
 {
-        lex_add_note(1, punctum(gabc_notes_determination_text[1]), _NO_SIGN,
-                L_INITIO_DEBILIS);
+        lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_INITIO_DEBILIS);
     }
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 1218 "gabc/gabc-notes-determination.l"
+#line 1219 "gabc/gabc-notes-determination.l"
 {
-        lex_add_note(1, punctum(gabc_notes_determination_text[1]), _NO_SIGN,
-                L_FUSED);
+        lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_FUSED);
     }
 	YY_BREAK
 case 115:
@@ -12501,45 +12661,45 @@
 YY_RULE_SETUP
 #line 1222 "gabc/gabc-notes-determination.l"
 {
-        add_sign(_V_EPISEMA);
+        lex_add_note(0, punctum_inclinatum(gabc_notes_determination_text[1]),
+                _NO_SIGN, L_NO_LIQUESCENTIA);
     }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1225 "gabc/gabc-notes-determination.l"
+#line 1226 "gabc/gabc-notes-determination.l"
 {
-        add_h_episema();
+        lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]),
+                _NO_SIGN, L_INITIO_DEBILIS);
     }
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 1228 "gabc/gabc-notes-determination.l"
+#line 1230 "gabc/gabc-notes-determination.l"
 {
-        add_sign(_PUNCTUM_MORA);
+        lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]),
+                _NO_SIGN, L_FUSED);
     }
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 1231 "gabc/gabc-notes-determination.l"
+#line 1234 "gabc/gabc-notes-determination.l"
 {
-        gregorio_add_tail_liquescentia(current_note, L_DEMINUTUS,
-                legacy_oriscus_orientation);
+        add_sign(_V_EPISEMA);
     }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 1235 "gabc/gabc-notes-determination.l"
+#line 1237 "gabc/gabc-notes-determination.l"
 {
-        gregorio_add_tail_liquescentia(current_note, L_AUCTUS_DESCENDENS,
-                legacy_oriscus_orientation);
+        add_h_episema();
     }
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 1239 "gabc/gabc-notes-determination.l"
+#line 1240 "gabc/gabc-notes-determination.l"
 {
-        gregorio_add_tail_liquescentia(current_note, L_AUCTUS_ASCENDENS,
-                legacy_oriscus_orientation);
+        add_sign(_PUNCTUM_MORA);
     }
 	YY_BREAK
 case 121:
@@ -12546,7 +12706,7 @@
 YY_RULE_SETUP
 #line 1243 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_QUADRATUM,
+        gregorio_add_tail_liquescentia(current_note, L_DEMINUTUS,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12554,7 +12714,7 @@
 YY_RULE_SETUP
 #line 1247 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_ORISCUS_UNDETERMINED,
+        gregorio_add_tail_liquescentia(current_note, L_AUCTUS_DESCENDENS,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12562,7 +12722,7 @@
 YY_RULE_SETUP
 #line 1251 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_ORISCUS_DESCENDENS,
+        gregorio_add_tail_liquescentia(current_note, L_AUCTUS_ASCENDENS,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12570,7 +12730,7 @@
 YY_RULE_SETUP
 #line 1255 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_ORISCUS_ASCENDENS,
+        gregorio_change_shape(current_note, S_QUADRATUM,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12578,7 +12738,7 @@
 YY_RULE_SETUP
 #line 1259 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_UNDETERMINED,
+        gregorio_change_shape(current_note, S_ORISCUS_UNDETERMINED,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12586,7 +12746,7 @@
 YY_RULE_SETUP
 #line 1263 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_DESCENDENS,
+        gregorio_change_shape(current_note, S_ORISCUS_DESCENDENS,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12594,7 +12754,7 @@
 YY_RULE_SETUP
 #line 1267 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_ASCENDENS,
+        gregorio_change_shape(current_note, S_ORISCUS_ASCENDENS,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12602,7 +12762,7 @@
 YY_RULE_SETUP
 #line 1271 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_QUILISMA,
+        gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_UNDETERMINED,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12610,7 +12770,7 @@
 YY_RULE_SETUP
 #line 1275 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_QUILISMA_QUADRATUM,
+        gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_DESCENDENS,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12618,7 +12778,7 @@
 YY_RULE_SETUP
 #line 1279 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_VIRGA,
+        gregorio_change_shape(current_note, S_ORISCUS_SCAPUS_ASCENDENS,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12626,7 +12786,7 @@
 YY_RULE_SETUP
 #line 1283 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_VIRGA_REVERSA,
+        gregorio_change_shape(current_note, S_QUILISMA,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12634,7 +12794,7 @@
 YY_RULE_SETUP
 #line 1287 "gabc/gabc-notes-determination.l"
 {
-        gregorio_change_shape(current_note, S_STROPHA,
+        gregorio_change_shape(current_note, S_QUILISMA_QUADRATUM,
                 legacy_oriscus_orientation);
     }
 	YY_BREAK
@@ -12642,8 +12802,8 @@
 YY_RULE_SETUP
 #line 1291 "gabc/gabc-notes-determination.l"
 {
-        current_note->supposed_high_ledger_line = true;
-        current_note->explicit_high_ledger_line = true;
+        gregorio_change_shape(current_note, S_VIRGA,
+                legacy_oriscus_orientation);
     }
 	YY_BREAK
 case 134:
@@ -12650,8 +12810,8 @@
 YY_RULE_SETUP
 #line 1295 "gabc/gabc-notes-determination.l"
 {
-        current_note->supposed_high_ledger_line = false;
-        current_note->explicit_high_ledger_line = true;
+        gregorio_change_shape(current_note, S_VIRGA_REVERSA,
+                legacy_oriscus_orientation);
     }
 	YY_BREAK
 case 135:
@@ -12658,8 +12818,8 @@
 YY_RULE_SETUP
 #line 1299 "gabc/gabc-notes-determination.l"
 {
-        current_note->supposed_low_ledger_line = true;
-        current_note->explicit_low_ledger_line = true;
+        gregorio_change_shape(current_note, S_STROPHA,
+                legacy_oriscus_orientation);
     }
 	YY_BREAK
 case 136:
@@ -12666,26 +12826,50 @@
 YY_RULE_SETUP
 #line 1303 "gabc/gabc-notes-determination.l"
 {
-        current_note->supposed_low_ledger_line = false;
-        current_note->explicit_low_ledger_line = true;
+        current_note->supposed_high_ledger_line = true;
+        current_note->explicit_high_ledger_line = true;
     }
 	YY_BREAK
 case 137:
-/* rule 137 can match eol */
 YY_RULE_SETUP
 #line 1307 "gabc/gabc-notes-determination.l"
 {
+        current_note->supposed_high_ledger_line = false;
+        current_note->explicit_high_ledger_line = true;
+    }
+	YY_BREAK
+case 138:
+YY_RULE_SETUP
+#line 1311 "gabc/gabc-notes-determination.l"
+{
+        current_note->supposed_low_ledger_line = true;
+        current_note->explicit_low_ledger_line = true;
+    }
+	YY_BREAK
+case 139:
+YY_RULE_SETUP
+#line 1315 "gabc/gabc-notes-determination.l"
+{
+        current_note->supposed_low_ledger_line = false;
+        current_note->explicit_low_ledger_line = true;
+    }
+	YY_BREAK
+case 140:
+/* rule 140 can match eol */
+YY_RULE_SETUP
+#line 1319 "gabc/gabc-notes-determination.l"
+{
         gregorio_messagef("det_notes_from_string", VERBOSITY_ERROR, 0,
                 _("unrecognized character: \"%c\""),
                 gabc_notes_determination_text[0]);
     }
 	YY_BREAK
-case 138:
+case 141:
 YY_RULE_SETUP
-#line 1313 "gabc/gabc-notes-determination.l"
+#line 1325 "gabc/gabc-notes-determination.l"
 ECHO;
 	YY_BREAK
-#line 12689 "gabc/gabc-notes-determination-l.c"
+#line 12873 "gabc/gabc-notes-determination-l.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(texverbnote):
 case YY_STATE_EOF(texverbglyph):
@@ -13670,7 +13854,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 1313 "gabc/gabc-notes-determination.l"
+#line 1325 "gabc/gabc-notes-determination.l"
 
 
 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination.l
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination.l	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-notes-determination.l	2016-09-25 06:05:30 UTC (rev 42143)
@@ -3,7 +3,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file implements the note parser.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *
@@ -42,12 +42,11 @@
 static unsigned int nbof_isolated_episema;
 static char *notesmacros[10];
 static char tempstr[256];
-static int brace_var_counter = 0;
-static int overbrace_var = 0, underbrace_var = 0;
+static unsigned short overbrace_var = 0, underbrace_var = 0;
 static const char *overbrace_var_kind;
 static int before_ledger_type;
 static char *before_ledger_length = NULL;
-static int ledger_var[2] = { 0, 0 };
+static unsigned short ledger_var[2] = { 0, 0 };
 static unsigned char staff_lines;
 static signed char highest_pitch;
 static bool legacy_oriscus_orientation;
@@ -54,7 +53,7 @@
 static unsigned short he_adjustment_index[2] = { 0, 0 };
 
 typedef struct slur_info {
-    int var;
+    unsigned short var;
     char shift;
     gregorio_note *start;
 } slur_info;
@@ -105,13 +104,17 @@
     return result;
 }
 
-static gregorio_shape punctum(const char pitch)
+static gregorio_shape punctum_inclinatum(const char orientation)
 {
-    if (pitch < 'a') {
-        return S_PUNCTUM_INCLINATUM;
-    } else {
-        return S_PUNCTUM;
+    switch (orientation) {
+    case '0':
+        return S_PUNCTUM_INCLINATUM_DESCENDENS;
+
+    case '1':
+        return S_PUNCTUM_INCLINATUM_ASCENDENS;
     }
+
+    return S_PUNCTUM_INCLINATUM_UNDETERMINED;
 }
 
 static __inline void lex_add_note(int i, gregorio_shape shape, char signs,
@@ -274,10 +277,10 @@
             after_ledger_length = after_ledger;
         }
 
-        ledger_var[type] = ++brace_var_counter;
+        ledger_var[type] = ++tex_position_id;
         gregorio_snprintf(tempstr, sizeof tempstr,
-                "\\GreVarBraceSavePos{%d}{0}{1}"
-                "\\GreDrawAdditionalLine{%d}{\\GreVarBraceLength{%d}}"
+                "\\GreVarBraceSavePos{%hu}{0}{1}"
+                "\\GreDrawAdditionalLine{%d}{\\GreVarBraceLength{%hu}}"
                 "{%d}{%s}{%d}{%s}",
                 ledger_var[type], type, ledger_var[type], before_ledger_type,
                 before_ledger_length, after_ledger_type, after_ledger_length);
@@ -301,7 +304,7 @@
                 "%s-staff ledger line start"), typename, typename);
     } else {
         gregorio_snprintf(tempstr, sizeof tempstr,
-                "\\GreVarBraceSavePos{%d}{0}{2}", ledger_var[type]);
+                "\\GreVarBraceSavePos{%hu}{0}{2}", ledger_var[type]);
         ledger_var[type] = 0;
         gregorio_add_texverb_as_note(&current_note, gregorio_strdup(tempstr),
                 GRE_TEXVERB_GLYPH, &notes_lloc);
@@ -440,7 +443,7 @@
         return;
     }
 
-    slur[index].var = ++brace_var_counter;
+    slur[index].var = ++tex_position_id;
     parse_slur_shift(&(slur[index].shift));
     slur[index].start = current_note;
 }
@@ -470,8 +473,8 @@
     parse_slur_shift(&shift);
 
     gregorio_snprintf(tempstr, sizeof tempstr,
-            "\\GreVarBraceSavePos{%d}{%c}{1}"
-            "\\GreSlur{%d}{%d}{%c}{\\GreVarBraceLength{%d}}{}{%d}",
+            "\\GreVarBraceSavePos{%hu}{%c}{1}"
+            "\\GreSlur{%d}{%d}{%c}{\\GreVarBraceLength{%hu}}{}{%d}",
             slur[index].var, slur[index].shift,
             slur[index].start->u.note.pitch + direction, direction,
             slur[index].shift, slur[index].var,
@@ -479,7 +482,7 @@
     gregorio_add_texverb_to_note(slur[index].start, gregorio_strdup(tempstr));
 
     gregorio_snprintf(tempstr, sizeof tempstr,
-            "\\GreVarBraceSavePos{%d}{%c}{2}", slur[index].var, shift);
+            "\\GreVarBraceSavePos{%hu}{%c}{2}", slur[index].var, shift);
     gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
 
 
@@ -713,11 +716,11 @@
                                 "previous overbrace"));
         } else {
             char_for_brace = gabc_notes_determination_text[4]-'0';
-            overbrace_var = ++brace_var_counter;
+            overbrace_var = ++tex_position_id;
             overbrace_var_kind = "ob";
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{1}"
-                    "\\GreOverBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}",
+                    "\\GreVarBraceSavePos{%hu}{%d}{1}"
+                    "\\GreOverBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}",
                     overbrace_var, char_for_brace, overbrace_var, char_for_brace);
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
         }
@@ -729,10 +732,10 @@
                                 "previous underbrace"));
         } else {
             char_for_brace = gabc_notes_determination_text[4]-'0';
-            underbrace_var = ++brace_var_counter;
+            underbrace_var = ++tex_position_id;
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{1}"
-                    "\\GreUnderBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}",
+                    "\\GreVarBraceSavePos{%hu}{%d}{1}"
+                    "\\GreUnderBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}",
                     underbrace_var, char_for_brace, underbrace_var, char_for_brace);
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
         }
@@ -744,11 +747,11 @@
                                 "previous overbrace"));
         } else {
             char_for_brace = gabc_notes_determination_text[5]-'0';
-            overbrace_var = ++brace_var_counter;
+            overbrace_var = ++tex_position_id;
             overbrace_var_kind = "ocb";
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{1}"
-                    "\\GreOverCurlyBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}{0}",
+                    "\\GreVarBraceSavePos{%hu}{%d}{1}"
+                    "\\GreOverCurlyBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}{0}",
                     overbrace_var, char_for_brace, overbrace_var, char_for_brace);
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
         }
@@ -760,11 +763,11 @@
                                 "previous overbrace"));
         } else {
             char_for_brace = gabc_notes_determination_text[6]-'0';
-            overbrace_var = ++brace_var_counter;
+            overbrace_var = ++tex_position_id;
             overbrace_var_kind = "ocba";
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{1}"
-                    "\\GreOverCurlyBrace{\\GreVarBraceLength{%d}}{0pt}{0pt}{%d}{1}",
+                    "\\GreVarBraceSavePos{%hu}{%d}{1}"
+                    "\\GreOverCurlyBrace{\\GreVarBraceLength{%hu}}{0pt}{0pt}{%d}{1}",
                     overbrace_var, char_for_brace, overbrace_var, char_for_brace);
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
         }
@@ -782,7 +785,7 @@
         } else {
             char_for_brace = gabc_notes_determination_text[4]-'0';
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var,
+                    "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var,
                     char_for_brace);
             overbrace_var = 0;
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
@@ -796,7 +799,7 @@
         } else {
             char_for_brace = gabc_notes_determination_text[4]-'0';
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{2}", underbrace_var,
+                    "\\GreVarBraceSavePos{%hu}{%d}{2}", underbrace_var,
                     char_for_brace);
             underbrace_var = 0;
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
@@ -815,7 +818,7 @@
         } else {
             char_for_brace = gabc_notes_determination_text[5]-'0';
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var,
+                    "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var,
                     char_for_brace);
             overbrace_var = 0;
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
@@ -834,7 +837,7 @@
         } else {
             char_for_brace = gabc_notes_determination_text[6]-'0';
             gregorio_snprintf(tempstr, sizeof tempstr,
-                    "\\GreVarBraceSavePos{%d}{%d}{2}", overbrace_var,
+                    "\\GreVarBraceSavePos{%hu}{%d}{2}", overbrace_var,
                     char_for_brace);
             overbrace_var = 0;
             gregorio_add_texverb_to_note(current_note, gregorio_strdup(tempstr));
@@ -1207,18 +1210,27 @@
 [a-npA-NP]sss(\<|\>) {
         lex_add_note(0, S_TRISTROPHA, _NO_SIGN, L_AUCTUS_ASCENDENS);
     }
-[a-npA-NP] {
-        lex_add_note(0, punctum(gabc_notes_determination_text[0]), _NO_SIGN,
-                L_NO_LIQUESCENTIA);
+[a-np] {
+        lex_add_note(0, S_PUNCTUM, _NO_SIGN, L_NO_LIQUESCENTIA);
     }
--[a-npA-NP] {
-        lex_add_note(1, punctum(gabc_notes_determination_text[1]), _NO_SIGN,
-                L_INITIO_DEBILIS);
+-[a-np] {
+        lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_INITIO_DEBILIS);
     }
-@[a-npA-NP] {
-        lex_add_note(1, punctum(gabc_notes_determination_text[1]), _NO_SIGN,
-                L_FUSED);
+@[a-np] {
+        lex_add_note(1, S_PUNCTUM, _NO_SIGN, L_FUSED);
     }
+[A-NP][01]? {
+        lex_add_note(0, punctum_inclinatum(gabc_notes_determination_text[1]),
+                _NO_SIGN, L_NO_LIQUESCENTIA);
+    }
+-[A-NP][01]? {
+        lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]),
+                _NO_SIGN, L_INITIO_DEBILIS);
+    }
+@[A-NP][01]? {
+        lex_add_note(1, punctum_inclinatum(gabc_notes_determination_text[2]),
+                _NO_SIGN, L_FUSED);
+    }
 \'[01]? {
         add_sign(_V_EPISEMA);
     }

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -398,8 +398,8 @@
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 70
-#define YY_END_OF_BUFFER 71
+#define YY_NUM_RULES 71
+#define YY_END_OF_BUFFER 72
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -407,41 +407,41 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int32_t yy_accept[292] =
+static yyconst flex_int32_t yy_accept[296] =
     {   0,
-        0,    1,    7,    7,    0,    0,   65,   65,   46,   46,
-       52,   52,   49,   49,    5,    5,   57,   57,   71,   25,
-       69,   25,   23,    6,   23,   23,   23,   23,   23,   23,
+        0,    0,    7,    7,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   72,   25,
+       70,   25,   23,    6,   23,   23,   23,   23,   23,   23,
        23,   23,   23,    2,    2,    3,    3,    1,    7,    7,
-       70,   26,   47,   64,   27,   53,   62,   63,   54,   55,
-       65,   67,   66,   46,   53,   52,   53,   49,   48,    5,
-        4,   57,   53,    0,    0,   23,    6,   23,   23,   23,
-       23,   23,   23,   23,   23,   23,   23,   23,    2,    1,
-        7,    7,    0,    7,    7,    0,    7,    8,    0,   26,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       71,   27,   26,   49,   65,   28,   55,   63,   64,   56,
+       57,   66,   68,   67,   27,   47,   48,   55,   71,   54,
+       55,   51,   50,    5,    4,   55,    0,    0,   23,    6,
+       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
+       23,    2,    1,    7,    7,    0,    7,    7,    0,    7,
+        8,    0,   27,   26,    0,    0,    0,    0,    0,    0,
 
-        0,    0,   65,   68,   46,    0,    0,   52,    0,   49,
-       48,    5,    4,   57,    0,   24,   23,   23,   23,   23,
-       23,   23,   23,   23,   23,   23,   23,   23,   23,    7,
-        0,    0,    0,   38,   36,   42,    0,   30,    0,    0,
-        0,    0,    0,   50,   61,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   23,   23,    0,   23,   23,   23,
-       14,   23,   10,   23,   23,   23,    0,    0,    0,   59,
-        0,   40,   44,   32,   34,   39,   37,   43,   31,    0,
-        0,    0,    0,   51,    0,   23,   23,   23,    0,   23,
-       23,    0,    0,   23,   23,   23,   60,    0,   56,    0,
-
-       41,   45,   33,   35,    0,   23,   18,    9,   23,   23,
-       23,   23,   23,   23,   23,    0,    0,    0,   28,   58,
+        0,    0,    0,    0,    0,    0,   66,   69,   27,   48,
+       47,    0,   54,    0,   51,   50,    5,    4,    0,   24,
        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
-       29,   23,   23,    0,   19,   23,   23,   23,    0,   23,
-       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
-       17,   23,   23,   23,   23,   21,   23,   23,   23,   23,
-       23,   23,   23,   23,   23,   20,   23,   23,   23,   23,
-       23,   23,   23,   13,   23,   15,   23,   23,   12,   23,
-       23,   23,   23,   23,   11,   16,   23,   23,   23,   22,
-        0
+       23,   23,   23,    7,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   39,   37,   43,    0,   31,    0,    0,
+        0,    0,    0,   52,   62,    0,    0,    0,   23,   23,
+        0,   23,   23,   23,   14,   23,   10,   23,   23,   23,
+       40,   38,   44,    0,   32,    0,    0,    0,    0,    0,
+       60,    0,   41,   45,   33,   35,    0,   53,    0,   23,
+       23,   23,    0,   23,   23,    0,    0,   23,   23,   23,
 
+       61,    0,   42,   34,   36,   58,    0,   46,    0,   23,
+       18,    9,   23,   23,   23,   23,   23,   23,   23,    0,
+        0,    0,   29,   59,   23,   23,   23,   23,   23,   23,
+       23,   23,   23,   23,   30,   23,   23,    0,   19,   23,
+       23,   23,    0,   23,   23,   23,   23,   23,   23,   23,
+       23,   23,   23,   23,   17,   23,   23,   23,   23,   21,
+       23,   23,   23,   23,   23,   23,   23,   23,   23,   20,
+       23,   23,   23,   23,   23,   23,   23,   13,   23,   15,
+       23,   23,   12,   23,   23,   23,   23,   23,   11,   16,
+       23,   23,   23,   22,    0
+
     } ;
 
 static yyconst YY_CHAR yy_ec[256] =
@@ -485,166 +485,169 @@
         4,    9,    1,    1,    1
     } ;
 
-static yyconst flex_uint32_t yy_base[313] =
+static yyconst flex_uint32_t yy_base[316] =
     {   0,
-        0,   43,   48,   50,   82,  118,   39,   50,   41,   42,
-      635,  634,   57,   62,   64,   66,  633,  632,  646,  651,
-      651,  638,  634,  638,   48,   53,   83,   45,   84,   63,
-       86,   64,   95,   68,  104,  651,  635,   66,  109,  115,
-      131,    0,  651,  651,  651,  150,  630,  651,  651,  651,
-        0,  136,  651,    0,  131,    0,  629,    0,  111,    0,
-      117,    0,  628,  140,    0,  628,  651,   68,  117,  138,
-      136,  122,  142,  139,  146,  149,  158,  144,  162,  139,
-      188,  190,  192,  623,  194,    0,  196,  176,  208,    0,
-      183,  607,  619,  618,  185,  617,  603,  183,  595,  601,
+        0,   43,   48,   50,   86,  126,   39,   50,  166,  206,
+      662,  661,   52,   54,   57,   62,  660,  659,  673,  678,
+      678,  665,  661,  665,   61,   53,   58,   64,   59,   65,
+       62,   66,   63,   80,   99,  678,  662,   63,  106,  108,
+      110,    0,  113,  678,  678,  678,  238,  657,  678,  678,
+      678,    0,  135,  678,  139,  148,    0,  656,  678,    0,
+      655,    0,  128,    0,  139,  654,  152,    0,  654,  678,
+      117,  125,  150,   60,  144,  152,  154,  157,  161,  169,
+      170,  188,  150,  193,  201,  208,  649,  214,    0,  216,
+      195,  199,    0,  229,  256,  633,  645,  644,  149,  643,
 
-      613,  609,    0,  215,    0,  202,  611,    0,  588,    0,
-      224,    0,  228,    0,  605,  231,  614,  193,  219,  613,
-      199,  179,  226,   92,  231,  230,  232,  234,  233,  608,
-      584,  591,  583,  651,  651,  651,  602,  651,  596,  600,
-      599,  598,  597,  651,  651,  596,  595,  594,  593,  223,
-      572,  578,  590,  576,  237,  238,  574,  593,  241,  239,
-      592,  591,  590,  240,  247,  249,  583,  577,  581,  651,
-      576,  651,  651,  651,  651,  651,  651,  651,  651,  579,
-      578,  577,  576,  651,  555,  245,  250,  251,  568,  262,
-      265,  256,  560,  254,  578,  577,  651,  566,  651,  569,
+      629,  204,  621,  627,  639,  635,    0,  236,  235,    0,
+      292,  618,    0,  614,    0,  232,    0,  247,  631,  252,
+      640,  247,  217,  639,  178,  253,  242,  237,  260,  257,
+      255,  254,  261,  634,  631,  630,  267,  629,  615,  621,
+      606,  612,  604,  678,  678,  678,  623,  678,  617,  621,
+      620,  619,  618,  678,  678,  600,  616,  602,  262,  275,
+      600,  619,  289,  290,  618,  617,  616,  291,  292,  293,
+      678,  678,  678,  609,  678,  603,  607,  606,  605,  604,
+      678,  599,  678,  678,  678,  678,  602,  678,  581,  295,
+      296,  109,  594,  299,  300,  291,  586,  298,  604,  601,
 
-      651,  651,  651,  651,  566,  256,  564,  549,  267,  268,
-      270,  273,  271,  277,  278,  528,  518,  511,  651,  651,
-      279,  283,  511,  280,  284,  285,  288,  509,  290,  292,
-      651,  296,  300,  377,  400,  301,  302,  305,  373,  304,
-      307,  311,  313,  308,  317,  315,  314,  321,  322,  324,
-      394,  323,  325,  326,  335,  392,  340,  333,  336,  343,
-      344,  342,  346,  348,  347,  387,  349,  355,  352,  364,
-      368,  367,  370,  385,  371,  382,  372,  374,  203,  375,
-      376,  377,  380,  378,  165,  159,  381,  379,  384,  120,
-      651,  415,  424,  433,  442,  451,  460,  469,  478,  483,
+      678,  577,  678,  678,  678,  678,  572,  678,  569,  301,
+      562,  555,  302,  153,  312,  313,  314,  315,  316,  536,
+      523,  534,  678,  678,  319,  321,  539,  318,  323,  322,
+      326,  444,  329,  330,  678,  334,  339,  415,  436,  340,
+      342,  343,  413,  346,  345,  349,  350,  352,  353,  358,
+      354,  359,  361,  362,  434,  363,  364,  365,  377,  433,
+      380,  372,  375,  371,  382,  385,  388,  391,  386,  431,
+      392,  394,  397,  403,  407,  406,  384,  426,  411,  424,
+      412,  413,  219,  414,  415,  416,  419,  417,  213,  115,
+      421,  423,  420,  113,  678,  455,  464,  473,  482,  491,
 
-      489,  498,  507,  516,  523,  532,  539,  548,  557,  566,
-       69,  575
+      500,  509,  514,  520,  529,  538,  547,  554,  563,  570,
+      577,  586,  595,   61,  604
     } ;
 
-static yyconst flex_int32_t yy_def[313] =
+static yyconst flex_int32_t yy_def[316] =
     {   0,
-      291,    1,  292,  292,  293,  293,  294,  294,  295,  295,
-      296,  296,  297,  297,  298,  298,  299,  299,  291,  291,
-      291,  291,  300,  291,  300,  300,  300,  300,  300,  300,
-      300,  300,  300,  291,  291,  291,  291,  291,  301,  302,
-      303,  304,  291,  291,  291,  291,  291,  291,  291,  291,
-      305,  291,  291,  306,   46,  307,  291,  308,  291,  309,
-      291,  310,  291,  291,  311,  300,  291,  300,  300,  300,
-      300,  300,  300,  300,  300,  300,  300,  300,  291,  291,
-      301,  302,  303,  302,  302,  312,  303,  291,  291,  304,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
+      295,    1,  296,  296,  297,  297,  298,  298,  299,  299,
+      300,  300,  301,  301,  302,  302,  300,  300,  295,  295,
+      295,  295,  303,  295,  303,  303,  303,  303,  303,  303,
+      303,  303,  303,  295,  295,  295,  295,  295,  304,  305,
+      306,  307,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  308,  295,  295,  309,  295,  310,  295,  295,  311,
+      295,  312,  295,  313,  295,  295,  295,  314,  303,  295,
+      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
+      303,  295,  295,  304,  305,  306,  305,  305,  315,  306,
+      295,  295,  307,  295,  295,  295,  295,  295,  295,  295,
 
-      291,  291,  305,  291,  306,  291,  291,  307,  291,  308,
-      291,  309,  291,  310,  291,  291,  311,  300,  300,  300,
-      300,  300,  300,  300,  300,  300,  300,  300,  300,  312,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  300,  300,  311,  300,  300,  300,
-      300,  300,  300,  300,  300,  300,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  300,  300,  311,  311,  300,
-      300,  311,  311,  300,  300,  300,  291,  291,  291,  291,
+      295,  295,  295,  295,  295,  295,  308,  295,  309,  310,
+      295,  295,  311,  295,  312,  295,  313,  295,  295,  295,
+      314,  303,  303,  303,  303,  303,  303,  303,  303,  303,
+      303,  303,  303,  315,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  303,  303,
+      314,  303,  303,  303,  303,  303,  303,  303,  303,  303,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  303,
+      303,  314,  314,  303,  303,  314,  314,  303,  303,  303,
 
-      291,  291,  291,  291,  291,  300,  300,  311,  311,  300,
-      300,  311,  311,  311,  300,  311,  311,  291,  291,  291,
-      300,  311,  300,  300,  311,  311,  311,  300,  311,  311,
-      291,  300,  311,  311,  300,  311,  311,  311,  311,  311,
-      311,  300,  311,  311,  311,  311,  311,  311,  311,  311,
-      300,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-      311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
-        0,  291,  291,  291,  291,  291,  291,  291,  291,  291,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  303,
+      303,  314,  314,  303,  303,  314,  314,  314,  303,  314,
+      314,  295,  295,  295,  303,  314,  303,  303,  314,  314,
+      314,  303,  314,  314,  295,  303,  314,  314,  303,  314,
+      314,  314,  314,  314,  314,  303,  314,  314,  314,  314,
+      314,  314,  314,  314,  303,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+      314,  314,  314,  314,    0,  295,  295,  295,  295,  295,
 
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  295,  295
     } ;
 
-static yyconst flex_uint32_t yy_nxt[697] =
+static yyconst flex_uint32_t yy_nxt[724] =
     {   0,
        20,   20,   21,   20,   20,   20,   22,   20,   20,   20,
        20,   23,   24,   20,   20,   20,   23,   20,   20,   25,
        23,   23,   26,   23,   23,   27,   23,   28,   29,   30,
        31,   32,   23,   23,   33,   23,   23,   23,   23,   20,
-       20,   20,   20,   20,   20,   34,   35,   52,   36,   37,
-       40,   40,   40,   40,   65,   55,   55,   65,   52,   59,
-       59,   41,   65,   41,   59,   59,   61,   61,   61,   61,
-       79,   79,   65,   65,  117,   72,   70,   65,   68,   53,
-       49,   49,   50,   50,   69,   38,   38,   38,   43,   44,
-       53,   45,   65,   65,   74,   65,   46,   76,  118,   47,
+       20,   20,   20,   20,   20,   34,   35,   53,   36,   37,
+       40,   40,   40,   40,   63,   63,   63,   63,   53,   65,
+       65,   41,   68,   41,   65,   65,  121,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   73,   74,   76,   54,
+      125,   78,   82,   82,   80,   38,   38,   38,   43,   43,
+       54,   71,   44,   45,   75,   46,   77,   72,   81,   79,
 
-       48,   65,   71,   73,   65,   75,   79,   79,   80,   80,
-       80,   82,   82,  111,  111,  161,   77,   85,   85,  113,
-      113,   49,   83,   50,   43,   44,   65,   45,   86,   65,
-       78,   65,   46,   88,   88,   47,   48,  104,  104,  104,
-      104,  106,  116,  116,   89,   65,   64,   65,   65,  122,
-      291,   65,  119,   65,  107,   65,  121,   49,   65,   50,
-       91,  124,  120,  129,   79,   79,  125,   65,   65,   92,
-       93,   94,  123,   95,   65,  126,  127,   96,   88,   88,
-       97,   80,   80,   80,   98,   99,  100,  101,   65,  128,
-       82,   82,   85,   85,  291,  291,   85,   85,   82,   82,
+       47,   82,   82,   48,   49,   83,   83,   83,   85,   85,
+       88,   88,   91,   91,   94,   94,   94,   94,   68,   86,
+      212,   89,   68,   92,   68,   50,   68,   51,   43,   43,
+      116,  116,   44,   45,   68,   46,  108,  108,  108,  108,
+       47,  118,  118,   48,   49,  110,  110,  122,  110,  111,
+      111,  111,  111,   68,  120,  120,  110,  110,   67,   68,
+      123,   68,   68,   68,  146,   50,   68,   51,   56,   56,
+       68,  126,   57,   57,  124,   57,  128,  129,   68,   68,
+       58,  227,  127,   57,   57,  147,  130,   68,  131,  133,
+       82,   82,   83,   83,   83,   85,   85,   91,   91,  162,
 
-      136,   83,   65,   86,  140,  291,  131,   86,   65,   83,
-       88,   88,   65,  132,  159,  141,  104,  104,  104,  104,
-      158,  137,  146,  147,  155,  148,  111,  111,   65,  149,
-      113,  113,  132,  116,  116,   65,  150,  151,  152,   65,
-       65,   65,   65,   65,  180,  156,   65,   65,   65,   65,
-       65,  160,  162,  163,   65,  181,   65,  166,   65,   65,
-       65,  194,  208,   65,  206,   65,  164,  165,  190,  187,
-      195,   65,  186,  196,   65,  191,   65,   65,  212,   65,
-       65,  210,   65,  207,  211,  213,   65,   65,   65,   65,
-      215,  221,   65,   65,   65,  224,  223,   65,  222,   65,
+      132,   91,   91,   88,   88,   59,   86,   59,   56,   56,
+      295,  295,   57,   57,   89,   57,   88,   88,   85,   85,
+       58,  295,   68,   57,   57,  150,   68,   89,   68,   86,
+       94,   94,   94,   94,  116,  116,  151,  108,  108,  108,
+      108,  110,  110,  160,  110,   59,   68,   59,   95,  118,
+      118,   68,  110,  110,  120,  120,   68,   96,   97,   98,
+      165,   99,   68,   68,   68,  100,   68,  164,  101,   68,
+       68,   68,  102,  103,  104,  105,  135,  136,  159,  137,
+      167,  166,  173,  138,   68,  170,  139,  169,  163,  168,
+      140,  141,  142,  111,  111,  111,  111,  190,   68,   68,
 
-      225,   65,  226,  235,  227,   65,  232,  237,  236,   65,
-       65,   65,  228,   65,   65,  233,   65,   65,  238,  241,
-       65,  240,   65,   65,   65,  245,   65,  242,  247,  246,
-       65,   65,   65,   65,   65,   65,  249,  250,  243,  255,
-      254,  251,   65,  253,   65,   65,  252,  259,  256,   65,
-      260,   65,   65,   65,  257,   65,   65,   65,   65,  262,
-      258,   65,  263,  261,   65,  269,  265,  264,  267,  270,
-      266,  271,  268,   65,  272,  273,   65,   65,  274,   65,
-       65,   65,  275,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,  278,   65,   65,  284,   65,  276,  277,  286,
+       68,   68,   68,  174,   68,   68,  191,   68,   68,   68,
+       68,   68,  198,  216,  210,  199,  194,  200,  214,  215,
+      217,   68,   68,   68,   68,   68,  195,   68,   68,  211,
+       68,   68,   68,  226,  219,   68,  225,  228,   68,   68,
+      229,  239,  231,   68,  241,  230,  236,  240,   68,   68,
+      232,   68,   68,  237,   68,   68,  242,  245,   68,   68,
+      244,   68,   68,   68,  249,  246,  251,   68,   68,  250,
+       68,   68,   68,   68,   68,  254,  258,  247,  253,  255,
+       68,   68,  259,  256,   68,  263,   68,  257,  260,   68,
+      264,   68,  261,   68,   68,   68,  271,   68,  266,  262,
 
-      282,   65,  283,   65,  248,  279,  280,  281,  288,   65,
-      289,  244,  285,  287,  290,   39,   39,   39,   39,   39,
+       68,   68,  265,   68,  267,  269,   68,  268,  273,  270,
+      272,  274,   68,  276,  275,   68,   68,  278,  277,  283,
+       68,   68,   68,   68,   68,   68,   68,  279,   68,   68,
+       68,  282,   68,   68,  288,   68,  280,  281,  290,  286,
+       68,  287,   68,   68,  252,   68,  284,  285,  292,  248,
+      294,  289,  291,  243,  293,   39,   39,   39,   39,   39,
        39,   39,   39,   39,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   51,   51,   51,   51,   51,   51,   51,
-       51,   51,   54,   54,   54,   54,   54,   54,   54,   54,
-       54,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   66,   66,   81,
-       81,   81,   81,   81,   81,   81,   81,   81,   84,   84,
+       42,   42,   42,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   55,   55,   55,   55,   55,   55,   55,   55,
+       55,   60,   60,   60,   60,   60,   60,   60,   60,   60,
 
-       84,   84,   84,   84,   84,   84,   84,   87,   87,   87,
-       87,   87,   87,   87,   87,   87,   90,   90,  239,   90,
-      234,   90,   90,  103,  103,  103,  231,  103,  103,  103,
-      103,  103,  105,  105,  105,  105,  105,  105,  105,  108,
-      108,  108,  108,  108,  108,  108,  230,  108,  110,  229,
-      110,  110,  110,  110,  110,  110,  110,  112,   65,  112,
-      112,  112,  112,  112,  112,  112,  114,  114,  114,  114,
-      114,  114,  114,   65,  114,  130,  130,  130,  130,  130,
-      130,  220,  130,  130,  219,  218,  217,  216,  214,  209,
-      205,  204,  203,  202,  201,  200,  199,  198,  197,   65,
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   69,   69,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   90,   90,
+       90,   90,   90,   90,   90,   90,   90,   93,  238,  235,
+       93,  234,   93,   93,  107,  107,  107,  233,  107,  107,
+      107,  107,  107,  109,   68,  109,  109,  109,  109,  109,
+      110,   68,  110,  110,  110,  110,  110,  113,  113,  113,
+      113,  113,  113,  113,  224,  113,  115,  223,  115,  115,
+      115,  115,  115,  115,  115,  117,  222,  117,  117,  117,
 
-      193,  192,  189,  188,  185,  184,  183,  182,  179,  178,
-      177,  176,  175,  174,  173,  172,  171,  170,  169,  168,
-      167,   86,  157,   65,  154,  153,  136,  145,  144,  143,
-      142,  139,  138,  135,  134,  133,   86,   65,  115,  109,
-      102,   64,   67,   65,   64,  291,   63,   63,   57,   57,
-       19,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291
+      117,  117,  117,  117,  134,  134,  134,  134,  134,  134,
+      221,  134,  134,  220,  218,  213,  209,  208,  207,  206,
+      205,  204,  203,  202,  201,   68,  197,  196,  193,  192,
+      189,  188,  187,  186,  185,  184,  183,  182,  181,  180,
+      179,  178,  177,  176,  175,  172,  171,   89,  161,   68,
+      158,  157,  156,  155,  154,  153,  152,  149,  148,  145,
+      144,  143,   89,   68,  119,  114,  112,  106,   67,   70,
+       68,   67,  295,   66,   66,   61,   61,   19,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
 
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295
     } ;
 
-static yyconst flex_int32_t yy_chk[697] =
+static yyconst flex_int32_t yy_chk[724] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -651,78 +654,81 @@
         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,    2,    7,    2,    2,
-        3,    3,    4,    4,   28,    9,   10,   25,    8,   13,
-       13,    3,   26,    4,   14,   14,   15,   15,   16,   16,
-       34,   34,   30,   32,  311,   28,   26,   68,   25,    7,
-        9,   10,    9,   10,   25,    2,    2,    2,    5,    5,
-        8,    5,   27,   29,   30,   31,    5,   32,   68,    5,
+        3,    3,    4,    4,   13,   13,   14,   14,    8,   15,
+       15,    3,   26,    4,   16,   16,  314,   27,   29,   74,
+       25,   31,   33,   28,   30,   32,   26,   27,   29,    7,
+       74,   31,   34,   34,   33,    2,    2,    2,    5,    5,
+        8,   25,    5,    5,   28,    5,   30,   25,   33,   32,
 
-        5,  124,   27,   29,   33,   31,   35,   35,   38,   38,
-       38,   39,   39,   59,   59,  124,   33,   40,   40,   61,
-       61,    5,   39,    5,    6,    6,   69,    6,   40,  290,
-       33,   72,    6,   41,   41,    6,    6,   52,   52,   52,
-       52,   55,   64,   64,   41,   71,   64,   70,   74,   72,
-       55,   73,   69,   78,   55,   75,   71,    6,   76,    6,
-       46,   74,   70,   78,   79,   79,   75,   77,  286,   46,
-       46,   46,   73,   46,  285,   75,   76,   46,   88,   88,
-       46,   80,   80,   80,   46,   46,   46,   46,  122,   77,
-       81,   81,   82,   82,   83,   83,   85,   85,   87,   87,
+        5,   35,   35,    5,    5,   38,   38,   38,   39,   39,
+       40,   40,   41,   41,   43,   43,   43,   43,  192,   39,
+      192,   40,  294,   41,  290,    5,   71,    5,    6,    6,
+       63,   63,    6,    6,   72,    6,   53,   53,   53,   53,
+        6,   65,   65,    6,    6,   55,   55,   71,   55,   56,
+       56,   56,   56,   75,   67,   67,   55,   55,   67,   73,
+       72,   76,  214,   77,   99,    6,   78,    6,    9,    9,
+       79,   75,    9,    9,   73,    9,   77,   78,   80,   81,
+        9,  214,   76,    9,    9,   99,   78,  125,   79,   81,
+       82,   82,   83,   83,   83,   84,   84,   91,   91,  125,
 
-       95,   81,  118,   82,   98,   83,   91,   85,  121,   87,
-       89,   89,  279,   91,  122,   98,  104,  104,  104,  104,
-      121,   95,  106,  106,  118,  106,  111,  111,  119,  106,
-      113,  113,  106,  116,  116,  123,  106,  106,  106,  126,
-      125,  127,  129,  128,  150,  119,  155,  156,  160,  164,
-      159,  123,  125,  126,  186,  150,  165,  129,  166,  187,
-      188,  164,  188,  194,  186,  206,  127,  128,  159,  156,
-      165,  190,  155,  166,  191,  160,  209,  210,  192,  211,
-      213,  190,  212,  187,  191,  192,  214,  215,  221,  224,
-      194,  206,  222,  225,  226,  211,  210,  227,  209,  229,
+       80,   92,   92,   85,   85,    9,   84,    9,   10,   10,
+       86,   86,   10,   10,   85,   10,   88,   88,   90,   90,
+       10,   86,  289,   10,   10,  102,  123,   88,  283,   90,
+       94,   94,   94,   94,  116,  116,  102,  108,  108,  108,
+      108,  109,  109,  123,  109,   10,  128,   10,   47,  118,
+      118,  127,  109,  109,  120,  120,  122,   47,   47,   47,
+      128,   47,  126,  132,  131,   47,  130,  127,   47,  129,
+      133,  159,   47,   47,   47,   47,   95,   95,  122,   95,
+      130,  129,  137,   95,  160,  133,   95,  132,  126,  131,
+       95,   95,   95,  111,  111,  111,  111,  159,  163,  164,
 
-      212,  230,  213,  224,  214,  232,  221,  226,  225,  233,
-      236,  237,  215,  240,  238,  222,  241,  244,  227,  230,
-      242,  229,  243,  247,  246,  236,  245,  232,  238,  237,
-      248,  249,  252,  250,  253,  254,  240,  241,  233,  246,
-      245,  242,  258,  244,  255,  259,  243,  250,  247,  257,
-      252,  262,  260,  261,  248,  263,  265,  264,  267,  254,
-      249,  269,  255,  253,  268,  262,  258,  257,  260,  263,
-      259,  264,  261,  270,  265,  267,  272,  271,  268,  273,
-      275,  277,  269,  278,  280,  281,  282,  284,  288,  283,
-      287,  276,  272,  289,  274,  281,  266,  270,  271,  283,
+      168,  169,  170,  137,  190,  191,  160,  198,  194,  195,
+      210,  213,  168,  196,  190,  169,  163,  170,  194,  195,
+      196,  215,  216,  217,  218,  219,  164,  228,  225,  191,
+      226,  230,  229,  213,  198,  231,  210,  215,  233,  234,
+      216,  228,  218,  236,  230,  217,  225,  229,  237,  240,
+      219,  241,  242,  226,  245,  244,  231,  234,  246,  247,
+      233,  248,  249,  251,  240,  236,  242,  250,  252,  241,
+      253,  254,  256,  257,  258,  245,  249,  237,  244,  246,
+      264,  262,  250,  247,  263,  254,  259,  248,  251,  261,
+      256,  265,  252,  277,  266,  269,  264,  267,  258,  253,
 
-      278,  256,  280,  251,  239,  273,  275,  277,  287,  235,
-      288,  234,  282,  284,  289,  292,  292,  292,  292,  292,
-      292,  292,  292,  292,  293,  293,  293,  293,  293,  293,
-      293,  293,  293,  294,  294,  294,  294,  294,  294,  294,
-      294,  294,  295,  295,  295,  295,  295,  295,  295,  295,
-      295,  296,  296,  296,  296,  296,  296,  296,  296,  296,
-      297,  297,  297,  297,  297,  297,  297,  297,  297,  298,
-      298,  298,  298,  298,  298,  298,  298,  298,  299,  299,
-      299,  299,  299,  299,  299,  299,  299,  300,  300,  301,
-      301,  301,  301,  301,  301,  301,  301,  301,  302,  302,
+      268,  271,  257,  272,  259,  262,  273,  261,  266,  263,
+      265,  267,  274,  269,  268,  276,  275,  272,  271,  277,
+      279,  281,  282,  284,  285,  286,  288,  273,  287,  293,
+      291,  276,  292,  280,  285,  278,  274,  275,  287,  282,
+      270,  284,  260,  255,  243,  239,  279,  281,  291,  238,
+      293,  286,  288,  232,  292,  296,  296,  296,  296,  296,
+      296,  296,  296,  296,  297,  297,  297,  297,  297,  297,
+      297,  297,  297,  298,  298,  298,  298,  298,  298,  298,
+      298,  298,  299,  299,  299,  299,  299,  299,  299,  299,
+      299,  300,  300,  300,  300,  300,  300,  300,  300,  300,
 
-      302,  302,  302,  302,  302,  302,  302,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  304,  304,  228,  304,
-      223,  304,  304,  305,  305,  305,  218,  305,  305,  305,
-      305,  305,  306,  306,  306,  306,  306,  306,  306,  307,
-      307,  307,  307,  307,  307,  307,  217,  307,  308,  216,
-      308,  308,  308,  308,  308,  308,  308,  309,  208,  309,
-      309,  309,  309,  309,  309,  309,  310,  310,  310,  310,
-      310,  310,  310,  207,  310,  312,  312,  312,  312,  312,
-      312,  205,  312,  312,  200,  198,  196,  195,  193,  189,
-      185,  183,  182,  181,  180,  171,  169,  168,  167,  163,
+      301,  301,  301,  301,  301,  301,  301,  301,  301,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  303,  303,
+      304,  304,  304,  304,  304,  304,  304,  304,  304,  305,
+      305,  305,  305,  305,  305,  305,  305,  305,  306,  306,
+      306,  306,  306,  306,  306,  306,  306,  307,  227,  222,
+      307,  221,  307,  307,  308,  308,  308,  220,  308,  308,
+      308,  308,  308,  309,  212,  309,  309,  309,  309,  309,
+      310,  211,  310,  310,  310,  310,  310,  311,  311,  311,
+      311,  311,  311,  311,  209,  311,  312,  207,  312,  312,
+      312,  312,  312,  312,  312,  313,  202,  313,  313,  313,
 
-      162,  161,  158,  157,  154,  153,  152,  151,  149,  148,
-      147,  146,  143,  142,  141,  140,  139,  137,  133,  132,
-      131,  130,  120,  117,  115,  109,  107,  102,  101,  100,
-       99,   97,   96,   94,   93,   92,   84,   66,   63,   57,
-       47,   37,   24,   23,   22,   19,   18,   17,   12,   11,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
-      291,  291,  291,  291,  291,  291
+      313,  313,  313,  313,  315,  315,  315,  315,  315,  315,
+      200,  315,  315,  199,  197,  193,  189,  187,  182,  180,
+      179,  178,  177,  176,  174,  167,  166,  165,  162,  161,
+      158,  157,  156,  153,  152,  151,  150,  149,  147,  143,
+      142,  141,  140,  139,  138,  136,  135,  134,  124,  121,
+      119,  114,  112,  106,  105,  104,  103,  101,  100,   98,
+       97,   96,   87,   69,   66,   61,   58,   48,   37,   24,
+       23,   22,   19,   18,   17,   12,   11,  295,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
 
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
+      295,  295,  295
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -746,22 +752,22 @@
  * This file implements the score lexer.
  *
  * Gregorio score determination in gabc input.
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
- * 
+ *
  * This program 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 3 of the License, or (at your option)
  * any later version.
- * 
+ *
  * This program 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 <http://www.gnu.org/licenses/>. 
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "config.h"
@@ -777,9 +783,35 @@
 #include "gabc-score-determination.h"
 #include "gabc-score-determination-y.h"
 
-static unsigned char style_stack = 0;
 static bool eof_found = false;
 
+#define START_STYLE(STYLE) \
+    if (*styles & SB_ ## STYLE) { \
+        gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, \
+                _("style already started: %s"), gabc_score_determination_text); \
+    } else { \
+        *styles ^= SB_ ## STYLE; \
+        return STYLE ## _BEGIN; \
+    }
+
+#define END_STYLE(STYLE) \
+    if (*styles & SB_ ## STYLE) { \
+        *styles ^= SB_ ## STYLE; \
+        return STYLE ## _END; \
+    } else { \
+        gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, \
+                _("style not started: %s"), gabc_score_determination_text); \
+    }
+
+#define RETURN_CHARACTERS \
+    gabc_score_determination_lval.text = \
+            gregorio_strdup(gabc_score_determination_text); \
+    return CHARACTERS
+
+#define RETURN_SPACE \
+    gabc_score_determination_lval.text = gregorio_strdup(" "); \
+    return CHARACTERS
+
 #define YY_NO_INPUT
 
 #define YY_INPUT(buf,result,max_size) \
@@ -827,13 +859,13 @@
 for (a) single-line values, ending with a semicolon at end of line or a
 double semicolon, (b) multi-line values, which end at a double
 semicolon. */
-#line 831 "gabc/gabc-score-determination-l.c"
+#line 863 "gabc/gabc-score-determination-l.c"
 
 #define INITIAL 0
 #define attribute 1
 #define score 2
 #define notes 3
-#define style 4
+#define sp 4
 #define verb 5
 #define comments 6
 #define inicomments 7
@@ -1058,9 +1090,9 @@
 		}
 
 	{
-#line 108 "gabc/gabc-score-determination.l"
+#line 134 "gabc/gabc-score-determination.l"
 
-#line 1064 "gabc/gabc-score-determination-l.c"
+#line 1096 "gabc/gabc-score-determination-l.c"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -1088,13 +1120,13 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 292 )
+				if ( yy_current_state >= 296 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 651 );
+		while ( yy_base[yy_current_state] != 678 );
 
 yy_find_action:
 		yy_act = yy_accept[yy_current_state];
@@ -1120,7 +1152,7 @@
 
 case 1:
 YY_RULE_SETUP
-#line 109 "gabc/gabc-score-determination.l"
+#line 135 "gabc/gabc-score-determination.l"
 {
         /* BOM written by a lot of windows softwares when they write UTF-8 */
     }
@@ -1128,7 +1160,7 @@
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 112 "gabc/gabc-score-determination.l"
+#line 138 "gabc/gabc-score-determination.l"
 {
         /* ignoring empty lines */
     }
@@ -1135,7 +1167,7 @@
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 115 "gabc/gabc-score-determination.l"
+#line 141 "gabc/gabc-score-determination.l"
 {
         BEGIN(inicomments);
     }
@@ -1143,7 +1175,7 @@
 case 4:
 /* rule 4 can match eol */
 YY_RULE_SETUP
-#line 118 "gabc/gabc-score-determination.l"
+#line 144 "gabc/gabc-score-determination.l"
 {
         BEGIN(INITIAL);
     }
@@ -1150,7 +1182,7 @@
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 121 "gabc/gabc-score-determination.l"
+#line 147 "gabc/gabc-score-determination.l"
 {
         /* ignored */
     }
@@ -1157,7 +1189,7 @@
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 124 "gabc/gabc-score-determination.l"
+#line 150 "gabc/gabc-score-determination.l"
 {
         BEGIN(attribute);
         return COLON;
@@ -1166,7 +1198,7 @@
 case 7:
 /* rule 7 can match eol */
 YY_RULE_SETUP
-#line 128 "gabc/gabc-score-determination.l"
+#line 154 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1176,7 +1208,7 @@
 case 8:
 /* rule 8 can match eol */
 YY_RULE_SETUP
-#line 133 "gabc/gabc-score-determination.l"
+#line 159 "gabc/gabc-score-determination.l"
 {
          BEGIN(INITIAL);
          return SEMICOLON;
@@ -1184,7 +1216,7 @@
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 137 "gabc/gabc-score-determination.l"
+#line 163 "gabc/gabc-score-determination.l"
 {
          gabc_score_determination_lval.character = gabc_score_determination_text[5];
          return DEF_MACRO;
@@ -1192,7 +1224,7 @@
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 141 "gabc/gabc-score-determination.l"
+#line 167 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1201,7 +1233,7 @@
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 146 "gabc/gabc-score-determination.l"
+#line 172 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1210,7 +1242,7 @@
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 151 "gabc/gabc-score-determination.l"
+#line 177 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1219,15 +1251,15 @@
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 156 "gabc/gabc-score-determination.l"
+#line 182 "gabc/gabc-score-determination.l"
 {
-        /* DEPRECATED by 4.1 */
+        /* DEPRECATED for removal in 5.0 */
         return INITIAL_STYLE;
     }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 160 "gabc/gabc-score-determination.l"
+#line 186 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1236,7 +1268,7 @@
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 165 "gabc/gabc-score-determination.l"
+#line 191 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1245,7 +1277,7 @@
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 170 "gabc/gabc-score-determination.l"
+#line 196 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1254,7 +1286,7 @@
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 175 "gabc/gabc-score-determination.l"
+#line 201 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1263,7 +1295,7 @@
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 180 "gabc/gabc-score-determination.l"
+#line 206 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1272,7 +1304,7 @@
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 185 "gabc/gabc-score-determination.l"
+#line 211 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1281,7 +1313,7 @@
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 190 "gabc/gabc-score-determination.l"
+#line 216 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1290,7 +1322,7 @@
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 195 "gabc/gabc-score-determination.l"
+#line 221 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1299,7 +1331,7 @@
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 200 "gabc/gabc-score-determination.l"
+#line 226 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1308,7 +1340,7 @@
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 205 "gabc/gabc-score-determination.l"
+#line 231 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1318,7 +1350,7 @@
 case 24:
 /* rule 24 can match eol */
 YY_RULE_SETUP
-#line 210 "gabc/gabc-score-determination.l"
+#line 236 "gabc/gabc-score-determination.l"
 {
        BEGIN(score);
        return END_OF_DEFINITIONS;
@@ -1326,7 +1358,7 @@
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 214 "gabc/gabc-score-determination.l"
+#line 240 "gabc/gabc-score-determination.l"
 {
         gregorio_messagef("det_score", VERBOSITY_ERROR, 0,
                 _("unrecognized character: \"%c\" in definition part"),
@@ -1336,112 +1368,86 @@
 case 26:
 /* rule 26 can match eol */
 YY_RULE_SETUP
-#line 219 "gabc/gabc-score-determination.l"
+#line 245 "gabc/gabc-score-determination.l"
 {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+        RETURN_SPACE;
     }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 224 "gabc/gabc-score-determination.l"
+#line 248 "gabc/gabc-score-determination.l"
 {
-        return HYPHEN;
+        RETURN_CHARACTERS;
     }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 227 "gabc/gabc-score-determination.l"
+#line 251 "gabc/gabc-score-determination.l"
 {
-        return NLBA_B;
+        return HYPHEN;
     }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 230 "gabc/gabc-score-determination.l"
+#line 254 "gabc/gabc-score-determination.l"
 {
-        return NLBA_E;
+        return NLBA_B;
     }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 233 "gabc/gabc-score-determination.l"
+#line 257 "gabc/gabc-score-determination.l"
 {
-        BEGIN(style);
-        style_stack ++;
-        return I_BEGIN;
+        return NLBA_E;
     }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 238 "gabc/gabc-score-determination.l"
+#line 260 "gabc/gabc-score-determination.l"
 {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return I_END;
+        START_STYLE(I);
     }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 245 "gabc/gabc-score-determination.l"
+#line 263 "gabc/gabc-score-determination.l"
 {
-        BEGIN(style);
-        style_stack ++;
-        return TT_BEGIN;
+        END_STYLE(I);
     }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 250 "gabc/gabc-score-determination.l"
+#line 266 "gabc/gabc-score-determination.l"
 {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return TT_END;
+        START_STYLE(TT);
     }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 257 "gabc/gabc-score-determination.l"
+#line 269 "gabc/gabc-score-determination.l"
 {
-        BEGIN(style);
-        style_stack ++;
-        return UL_BEGIN;
+        END_STYLE(TT);
     }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 262 "gabc/gabc-score-determination.l"
+#line 272 "gabc/gabc-score-determination.l"
 {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return UL_END;
+        START_STYLE(UL);
     }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 269 "gabc/gabc-score-determination.l"
+#line 275 "gabc/gabc-score-determination.l"
 {
-        BEGIN(style);
-        style_stack ++;
-        return C_BEGIN;
+        END_STYLE(UL);
     }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 274 "gabc/gabc-score-determination.l"
+#line 278 "gabc/gabc-score-determination.l"
 {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return C_END;
+        START_STYLE(C);
     }
 	YY_BREAK
 case 38:
@@ -1448,240 +1454,212 @@
 YY_RULE_SETUP
 #line 281 "gabc/gabc-score-determination.l"
 {
-        BEGIN(style);
-        style_stack ++;
-        return B_BEGIN;
+        END_STYLE(C);
     }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 286 "gabc/gabc-score-determination.l"
+#line 284 "gabc/gabc-score-determination.l"
 {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return B_END;
+        START_STYLE(B);
     }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 293 "gabc/gabc-score-determination.l"
+#line 287 "gabc/gabc-score-determination.l"
 {
-        BEGIN(style);
-        style_stack ++;
-        return SC_BEGIN;
+        END_STYLE(B);
     }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 298 "gabc/gabc-score-determination.l"
+#line 290 "gabc/gabc-score-determination.l"
 {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return SC_END;
+        START_STYLE(SC);
     }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 305 "gabc/gabc-score-determination.l"
+#line 293 "gabc/gabc-score-determination.l"
 {
-        BEGIN(style);
-        style_stack ++;
-        return ELISION_BEGIN;
+        END_STYLE(SC);
     }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 310 "gabc/gabc-score-determination.l"
+#line 296 "gabc/gabc-score-determination.l"
 {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return ELISION_END;
+        START_STYLE(ELISION);
     }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 317 "gabc/gabc-score-determination.l"
+#line 299 "gabc/gabc-score-determination.l"
 {
-        BEGIN(style);
-        style_stack ++;
-        return SP_BEGIN;
+        END_STYLE(ELISION);
     }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 322 "gabc/gabc-score-determination.l"
+#line 302 "gabc/gabc-score-determination.l"
 {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return SP_END;
+        BEGIN(sp);
+        return SP_BEGIN;
     }
 	YY_BREAK
 case 46:
-/* rule 46 can match eol */
 YY_RULE_SETUP
-#line 329 "gabc/gabc-score-determination.l"
+#line 306 "gabc/gabc-score-determination.l"
 {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+        BEGIN(score);
+        return SP_END;
     }
 	YY_BREAK
 case 47:
+/* rule 47 can match eol */
 YY_RULE_SETUP
-#line 334 "gabc/gabc-score-determination.l"
+#line 310 "gabc/gabc-score-determination.l"
 {
-        BEGIN(comments);
+        RETURN_SPACE;
     }
 	YY_BREAK
 case 48:
-/* rule 48 can match eol */
 YY_RULE_SETUP
-#line 337 "gabc/gabc-score-determination.l"
+#line 313 "gabc/gabc-score-determination.l"
 {
-        BEGIN(score);
+        RETURN_CHARACTERS;
     }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 340 "gabc/gabc-score-determination.l"
+#line 316 "gabc/gabc-score-determination.l"
 {
-        /* ignored */
+        BEGIN(comments);
     }
 	YY_BREAK
 case 50:
+/* rule 50 can match eol */
 YY_RULE_SETUP
-#line 343 "gabc/gabc-score-determination.l"
+#line 319 "gabc/gabc-score-determination.l"
 {
-        BEGIN(verb);
-        return VERB_BEGIN;
+        BEGIN(score);
     }
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 347 "gabc/gabc-score-determination.l"
+#line 322 "gabc/gabc-score-determination.l"
 {
-        if (style_stack == 0) {
-            BEGIN(score);
-        } else {
-            BEGIN(style);
-        }
-        return VERB_END;
+        /* ignored */
     }
 	YY_BREAK
 case 52:
-/* rule 52 can match eol */
 YY_RULE_SETUP
-#line 355 "gabc/gabc-score-determination.l"
+#line 325 "gabc/gabc-score-determination.l"
 {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+        BEGIN(verb);
+        return VERB_BEGIN;
     }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 360 "gabc/gabc-score-determination.l"
+#line 329 "gabc/gabc-score-determination.l"
 {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+        BEGIN(score);
+        return VERB_END;
     }
 	YY_BREAK
 case 54:
+/* rule 54 can match eol */
 YY_RULE_SETUP
-#line 365 "gabc/gabc-score-determination.l"
+#line 333 "gabc/gabc-score-determination.l"
 {
-        return CENTER_BEGIN;
+        RETURN_CHARACTERS;
     }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 368 "gabc/gabc-score-determination.l"
+#line 336 "gabc/gabc-score-determination.l"
 {
-        return CENTER_END;
+        RETURN_CHARACTERS;
     }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 371 "gabc/gabc-score-determination.l"
+#line 339 "gabc/gabc-score-determination.l"
 {
-        BEGIN(alt);
-        return ALT_BEGIN;
+        return CENTER_BEGIN;
     }
 	YY_BREAK
 case 57:
-/* rule 57 can match eol */
 YY_RULE_SETUP
-#line 375 "gabc/gabc-score-determination.l"
+#line 342 "gabc/gabc-score-determination.l"
 {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+        return CENTER_END;
     }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 380 "gabc/gabc-score-determination.l"
+#line 345 "gabc/gabc-score-determination.l"
 {
+        BEGIN(alt);
+        return ALT_BEGIN;
+    }
+	YY_BREAK
+case 59:
+YY_RULE_SETUP
+#line 349 "gabc/gabc-score-determination.l"
+{
         BEGIN(score);
         return ALT_END;
     }
 	YY_BREAK
-case 59:
+case 60:
 YY_RULE_SETUP
-#line 384 "gabc/gabc-score-determination.l"
+#line 353 "gabc/gabc-score-determination.l"
 {
         return EUOUAE_B;
     }
 	YY_BREAK
-case 60:
+case 61:
 YY_RULE_SETUP
-#line 387 "gabc/gabc-score-determination.l"
+#line 356 "gabc/gabc-score-determination.l"
 {
         return EUOUAE_E;
     }
 	YY_BREAK
-case 61:
+case 62:
 YY_RULE_SETUP
-#line 390 "gabc/gabc-score-determination.l"
+#line 359 "gabc/gabc-score-determination.l"
 {
         return TRANSLATION_CENTER_END;
     }
 	YY_BREAK
-case 62:
+case 63:
 YY_RULE_SETUP
-#line 393 "gabc/gabc-score-determination.l"
+#line 362 "gabc/gabc-score-determination.l"
 {
         return TRANSLATION_BEGIN;
     }
 	YY_BREAK
-case 63:
+case 64:
 YY_RULE_SETUP
-#line 396 "gabc/gabc-score-determination.l"
+#line 365 "gabc/gabc-score-determination.l"
 {
         return TRANSLATION_END;
     }
 	YY_BREAK
-case 64:
+case 65:
 YY_RULE_SETUP
-#line 399 "gabc/gabc-score-determination.l"
+#line 368 "gabc/gabc-score-determination.l"
 {
         BEGIN(notes);
         return OPENING_BRACKET;
     }
 	YY_BREAK
-case 65:
-/* rule 65 can match eol */
+case 66:
+/* rule 66 can match eol */
 YY_RULE_SETUP
-#line 403 "gabc/gabc-score-determination.l"
+#line 372 "gabc/gabc-score-determination.l"
 {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
@@ -1688,25 +1666,25 @@
         return NOTES;
     }
 	YY_BREAK
-case 66:
+case 67:
 YY_RULE_SETUP
-#line 408 "gabc/gabc-score-determination.l"
+#line 377 "gabc/gabc-score-determination.l"
 {
         return NABC_CUT;
     }
 	YY_BREAK
-case 67:
+case 68:
 YY_RULE_SETUP
-#line 411 "gabc/gabc-score-determination.l"
+#line 380 "gabc/gabc-score-determination.l"
 {
         BEGIN(score);
         return CLOSING_BRACKET;
     }
 	YY_BREAK
-case 68:
-/* rule 68 can match eol */
+case 69:
+/* rule 69 can match eol */
 YY_RULE_SETUP
-#line 415 "gabc/gabc-score-determination.l"
+#line 384 "gabc/gabc-score-determination.l"
 {
         BEGIN(score);
         return CLOSING_BRACKET_WITH_SPACE;
@@ -1716,12 +1694,12 @@
 case YY_STATE_EOF(attribute):
 case YY_STATE_EOF(score):
 case YY_STATE_EOF(notes):
-case YY_STATE_EOF(style):
+case YY_STATE_EOF(sp):
 case YY_STATE_EOF(verb):
 case YY_STATE_EOF(comments):
 case YY_STATE_EOF(inicomments):
 case YY_STATE_EOF(alt):
-#line 419 "gabc/gabc-score-determination.l"
+#line 388 "gabc/gabc-score-determination.l"
 {
         if (!eof_found) {
             eof_found = true;
@@ -1731,10 +1709,10 @@
         }
     }
 	YY_BREAK
-case 69:
-/* rule 69 can match eol */
+case 70:
+/* rule 70 can match eol */
 YY_RULE_SETUP
-#line 427 "gabc/gabc-score-determination.l"
+#line 396 "gabc/gabc-score-determination.l"
 {
         gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0,
                 _("unrecognized character: \"%c\""),
@@ -1741,12 +1719,12 @@
                 gabc_score_determination_text[0]);
     }
 	YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 432 "gabc/gabc-score-determination.l"
+#line 401 "gabc/gabc-score-determination.l"
 ECHO;
 	YY_BREAK
-#line 1750 "gabc/gabc-score-determination-l.c"
+#line 1728 "gabc/gabc-score-determination-l.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2038,7 +2016,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 292 )
+			if ( yy_current_state >= 296 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2066,11 +2044,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 292 )
+		if ( yy_current_state >= 296 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 291);
+	yy_is_jam = (yy_current_state == 295);
 
 		return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2719,7 +2697,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 432 "gabc/gabc-score-determination.l"
+#line 401 "gabc/gabc-score-determination.l"
 
 
 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-l.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -225,7 +225,7 @@
 #define attribute 1
 #define score 2
 #define notes 3
-#define style 4
+#define sp 4
 #define verb 5
 #define comments 6
 #define inicomments 7
@@ -338,7 +338,7 @@
 #undef YY_DECL
 #endif
 
-#line 432 "gabc/gabc-score-determination.l"
+#line 401 "gabc/gabc-score-determination.l"
 
 
 #line 345 "gabc/gabc-score-determination-l.h"

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination-y.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -77,8 +77,8 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file implements the score parser.
  *
- * Gregorio score determination in gabc input.
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Gregorio score determination from gabc.
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 
@@ -134,6 +134,12 @@
 #include "gabc-score-determination.h"
 #include "gabc-score-determination-l.h"
 
+/* workaround for bison issue passing pointer to a "local" variable */
+#define STYLE_BITS &styles
+
+/* forward declaration of the flex/bison process function */
+static int gabc_score_determination_parse(void);
+
 /* uncomment it if you want to have an interactive shell to understand the
  * details on how bison works for a certain input */
 /* int gabc_score_determination_debug=1; */
@@ -152,8 +158,6 @@
 gregorio_element *current_element;
 /* a table containing the macros to use in gabc file */
 static char *macros[10];
-/* forward declaration of the flex/bison process function */
-static int gabc_score_determination_parse(void);
 /* other variables that we will have to use */
 static gregorio_character *current_character;
 static gregorio_character *first_text_character;
@@ -169,11 +173,29 @@
 /* current_key is... the current key... updated by each notes determination
  * (for key changes) */
 static int current_key;
-static bool got_language = false;
-static bool got_staff_lines = false;
-static bool started_first_word = false;
+static bool got_language;
+static bool got_staff_lines;
+static bool started_first_word;
 static struct sha1_ctx digester;
+static gabc_style_bits styles;
 
+/* punctum_inclinatum_orientation maintains the running punctum inclinatum
+ * orientation in order to decide if the glyph needs to be cut when a punctum
+ * inclinatum with forced orientation is encountered.  This should be set to
+ * the shape of a non-liquescent punctum inclinatum with forced orientation
+ * when one is encountered, be left alone when a non-liquescent punctum
+ * inclinatum with undetermined orientation is encountered, or be reset to
+ * S_PUNCTUM_INCLINATUM_UNDETERMINED otherwise (because such ends any previous
+ * run of punctum inclinatum notes).  Based on the assumption that a punctum
+ * inclinatum with forced orientation changes all the punctum inclinatum shapes
+ * with undetermined orientation in the same run of notes before and after it
+ * unless influenced by an earlier punctum inclinatum with forced orientation,
+ * the value of punctum_inclinatum_orientation can be used to determine if a
+ * punctum inclinatum with a forced orientation will have a different
+ * orientation than the punctum inclinatum immediately before it, which would
+ * require a cut of the glyph. */
+static gregorio_shape punctum_inclinatum_orientation;
+
 static __inline void check_multiple(const char *name, bool exists) {
     if (exists) {
         gregorio_messagef("det_score", VERBOSITY_WARNING, 0,
@@ -188,129 +210,7 @@
             VERBOSITY_ERROR, 0);
 }
 
-static void fix_custos(gregorio_score *score_to_check)
-{
-    gregorio_syllable *current_syllable;
-    gregorio_element *current_element;
-    gregorio_element *custo_element;
-    char pitch = 0;
-    char pitch_difference = 0;
-    int newkey;
-    int current_key;
-    if (!score_to_check || !score_to_check->first_syllable
-            || !score_to_check->first_voice_info) {
-        return;
-    }
-    current_key = gregorio_calculate_new_key(
-            score_to_check->first_voice_info->initial_clef);
-    current_syllable = score_to_check->first_syllable;
-    while (current_syllable) {
-        current_element = (current_syllable->elements)[0];
-        while (current_element) {
-            if (current_element->type == GRE_CUSTOS) {
-                custo_element = current_element;
-                pitch = custo_element->u.misc.pitched.pitch;
-                /* we look for the key */
-                while (current_element) {
-                    if (current_element->type == GRE_CLEF) {
-                        pitch = gregorio_determine_next_pitch( current_syllable,
-                                current_element, NULL);
-                        newkey = gregorio_calculate_new_key(
-                                current_element->u.misc.clef);
-                        pitch_difference = (char) newkey - (char) current_key;
-                        pitch -= pitch_difference;
-                        current_key = newkey;
-                    }
-                    if (!custo_element->u.misc.pitched.force_pitch) {
-                        while (pitch < LOWEST_PITCH) {
-                            pitch += 7;
-                        }
-                        while (pitch > score_to_check->highest_pitch) {
-                            pitch -= 7;
-                        }
-                        custo_element->u.misc.pitched.pitch = pitch;
-                    }
-                    assert(custo_element->u.misc.pitched.pitch >= LOWEST_PITCH 
-                            && custo_element->u.misc.pitched.pitch
-                            <= score_to_check->highest_pitch);
-                    current_element = current_element->next;
-                }
-            }
-            if (current_element) {
-                if (current_element->type == GRE_CLEF) {
-                    current_key = gregorio_calculate_new_key(
-                            current_element->u.misc.clef);
-                }
-                current_element = current_element->next;
-            }
-        }
-        current_syllable = current_syllable->next_syllable;
-    }
-}
-
 /*
- * A function that checks the score integrity.
- */
-
-static bool check_score_integrity(gregorio_score *score_to_check)
-{
-    bool good = true;
-
-    gregorio_assert(score_to_check, check_score_integrity, "score is NULL",
-            return false);
-
-    if (score_to_check->first_syllable
-            && score_to_check->first_syllable->elements
-            && *(score_to_check->first_syllable->elements)) {
-        gregorio_character *ch;
-        if ((score_to_check->first_syllable->elements)[0]->type
-                == GRE_END_OF_LINE) {
-            gregorio_message(
-                    "line break is not supported on the first syllable",
-                    "check_score_integrity", VERBOSITY_ERROR, 0);
-            good = false;
-        }
-        if (gregorio_get_clef_change(score_to_check->first_syllable)) {
-            gregorio_message(
-                    "clef change is not supported on the first syllable",
-                    "check_score_integrity", VERBOSITY_ERROR, 0);
-            good = false;
-        }
-        /* check first syllable for elision at the beginning */
-        for (ch = score_to_check->first_syllable->text; ch;
-                ch = ch->next_character) {
-            if (ch->is_character) {
-                break;
-            } else if (ch->cos.s.style == ST_VERBATIM
-                    || ch->cos.s.style == ST_SPECIAL_CHAR) {
-                break;
-            } else if (ch->cos.s.style == ST_ELISION) {
-                gregorio_message(
-                        _("score initial may not be in an elision"),
-                        "check_score_integrity", VERBOSITY_ERROR, 0);
-                break;
-            }
-        }
-    }
-
-    return good;
-}
-
-/*
- * Another function to be improved: this one checks the validity of the voice_infos.
- */
-
-static bool check_infos_integrity(gregorio_score *score_to_check)
-{
-    if (!score_to_check->name) {
-        gregorio_message(_("no name specified, put `name:...;' at the "
-                "beginning of the file, can be dangerous with some output "
-                "formats"), "det_score", VERBOSITY_WARNING, 0);
-    }
-    return true;
-}
-
-/*
  * The function that will initialize the variables. 
  */
 
@@ -340,6 +240,8 @@
     got_language = false;
     got_staff_lines = false;
     started_first_word = false;
+    styles = 0;
+    punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_UNDETERMINED;
 }
 
 /*
@@ -586,13 +488,51 @@
 }
 
 /*
- * gregorio_gabc_add_text is the function called when lex returns a char *. In
+ * 
+ * The two functions called when lex returns a style, we simply add it. All the 
+ * complex things will be done by the function after...
+ * 
+ */
+
+static void add_style(unsigned char style)
+{
+    gregorio_begin_style(&current_character, style);
+}
+
+static void end_style(unsigned char style)
+{
+    gregorio_end_style(&current_character, style);
+}
+
+/*
+ * add_text is the function called when lex returns a char *. In
  * this function we convert it into grewchar, and then we add the corresponding 
  * gregorio_characters in the list of gregorio_characters. 
  */
 
-static void gregorio_gabc_add_text(char *mbcharacters)
+static void add_text(char *mbcharacters)
 {
+    if (!current_character) {
+        /* insert open styles, leaving out ELISION on purpose */
+        if (styles & SB_I) {
+            add_style(ST_ITALIC);
+        }
+        if (styles & SB_B) {
+            add_style(ST_BOLD);
+        }
+        if (styles & SB_TT) {
+            add_style(ST_TT);
+        }
+        if (styles & SB_SC) {
+            add_style(ST_SMALL_CAPS);
+        }
+        if (styles & SB_UL) {
+            add_style(ST_UNDERLINED);
+        }
+        if (styles & SB_C) {
+            add_style(ST_COLORED);
+        }
+    }
     if (current_character) {
         current_character->next_character = gregorio_build_char_list_from_buf(
                 mbcharacters);
@@ -607,140 +547,11 @@
     free(mbcharacters);
 }
 
-/*
- * 
- * The two functions called when lex returns a style, we simply add it. All the 
- * complex things will be done by the function after...
- * 
- */
-
-static void gregorio_gabc_add_style(unsigned char style)
-{
-    gregorio_begin_style(&current_character, style);
-}
-
-static void gregorio_gabc_end_style(unsigned char style)
-{
-    gregorio_end_style(&current_character, style);
-}
-
 void gabc_digest(const void *const buf, const size_t size)
 {
     sha1_process_bytes(buf, size, &digester);
 }
 
-static void determine_oriscus_orientation(gregorio_score *score) {
-    gregorio_syllable *syllable;
-    gregorio_element *element;
-    gregorio_glyph *glyph;
-    gregorio_note *note;
-    gregorio_note *oriscus = NULL;
-
-    for (syllable = score->first_syllable; syllable;
-            syllable = syllable->next_syllable) {
-        for (element = syllable->elements[0]; element;
-                element = element->next) {
-            if (element->type == GRE_ELEMENT) {
-                for (glyph = element->u.first_glyph; glyph;
-                        glyph = glyph->next) {
-                    if (glyph->type == GRE_GLYPH) {
-                        for (note = glyph->u.notes.first_note; note;
-                                note = note->next) {
-                            if (note->type == GRE_NOTE) {
-                                if (oriscus) {
-                                    if (note->u.note.pitch
-                                            < oriscus->u.note.pitch) {
-                                        switch(oriscus->u.note.shape) {
-                                        case S_ORISCUS_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_DESCENDENS;
-                                            break;
-                                        case S_ORISCUS_SCAPUS_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_SCAPUS_DESCENDENS;
-                                            break;
-                                        case S_ORISCUS_CAVUM_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_CAVUM_DESCENDENS;
-                                            break;
-                                        default:
-                                            /* not reachable unless there's a
-                                             * programming error */
-                                            /* LCOV_EXCL_START */
-                                            gregorio_fail(
-                                                    determine_oriscus_orientation,
-                                                    "bad_shape");
-                                            break;
-                                            /* LCOV_EXCL_STOP */
-                                        }
-                                    } else { /* ascending or the same */
-                                        switch(oriscus->u.note.shape) {
-                                        case S_ORISCUS_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_ASCENDENS;
-                                            break;
-                                        case S_ORISCUS_SCAPUS_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_SCAPUS_ASCENDENS;
-                                            break;
-                                        case S_ORISCUS_CAVUM_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_CAVUM_ASCENDENS;
-                                            break;
-                                        default:
-                                            /* not reachable unless there's a
-                                             * programming error */
-                                            /* LCOV_EXCL_START */
-                                            gregorio_fail(
-                                                    determine_oriscus_orientation,
-                                                    "bad_shape");
-                                            break;
-                                            /* LCOV_EXCL_STOP */
-                                        }
-                                    }
-                                    oriscus = NULL;
-                                }
-
-                                switch (note->u.note.shape) {
-                                case S_ORISCUS_UNDETERMINED:
-                                case S_ORISCUS_SCAPUS_UNDETERMINED:
-                                case S_ORISCUS_CAVUM_UNDETERMINED:
-                                    oriscus = note;
-                                    break;
-
-                                default:
-                                    break;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    if (oriscus) {
-        /* oriscus at the end of the score */
-        switch(oriscus->u.note.shape) {
-        case S_ORISCUS_UNDETERMINED:
-            oriscus->u.note.shape = S_ORISCUS_DESCENDENS;
-            break;
-        case S_ORISCUS_SCAPUS_UNDETERMINED:
-            oriscus->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS;
-            break;
-        case S_ORISCUS_CAVUM_UNDETERMINED:
-            oriscus->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS;
-            break;
-        default:
-            /* not reachable unless there's a programming error */
-            /* LCOV_EXCL_START */
-            gregorio_fail(determine_oriscus_orientation, "bad_shape");
-            break;
-            /* LCOV_EXCL_STOP */
-        }
-    }
-}
-
 /*
  * The "main" function. It is the function that is called when we have to read
  * a gabc file. It takes a file descriptor, that is to say a file that is
@@ -765,6 +576,7 @@
     if (!score->legacy_oriscus_orientation) {
         determine_oriscus_orientation(score);
     }
+    determine_punctum_inclinatum_orientation(score);
     gregorio_fix_initial_keys(score, gregorio_default_clef);
     rebuild_score_characters();
     fix_custos(score);
@@ -785,12 +597,13 @@
 static void gabc_y_add_notes(char *notes, YYLTYPE loc) {
     if (nabc_state == 0) {
         if (!elements[voice]) {
-            elements[voice] = gabc_det_elements_from_string(notes,
-                    &current_key, macros, &loc, score);
+            elements[voice] = gabc_det_elements_from_string(notes, &current_key,
+                    macros, &loc, &punctum_inclinatum_orientation, score);
             current_element = elements[voice];
         } else {
             gregorio_element *new_elements = gabc_det_elements_from_string(
-                    notes, &current_key, macros, &loc, score);
+                    notes, &current_key, macros, &loc,
+                    &punctum_inclinatum_orientation, score);
             gregorio_element *last_element = elements[voice];
             while (last_element->next) {
                 last_element = last_element->next;
@@ -816,7 +629,7 @@
     }
 }
 
-#line 820 "gabc/gabc-score-determination-y.c" /* yacc.c:339  */
+#line 633 "gabc/gabc-score-determination-y.c" /* yacc.c:339  */
 
 # ifndef YY_NULLPTR
 #  if defined __cplusplus && 201103L <= __cplusplus
@@ -1001,7 +814,7 @@
 
 /* Copy the second part of user declarations.  */
 
-#line 1005 "gabc/gabc-score-determination-y.c" /* yacc.c:358  */
+#line 818 "gabc/gabc-score-determination-y.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -1306,15 +1119,15 @@
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   782,   782,   786,   791,   792,   796,   800,   806,   811,
-     820,   826,   831,   836,   841,   846,   851,   859,   867,   877,
-     886,   891,   895,   900,   901,   905,   910,   916,   927,   931,
-     939,   940,   941,   945,   948,   951,   954,   957,   960,   963,
-     966,   969,   972,   981,   984,   987,   990,   993,   996,   999,
-    1002,  1005,  1008,  1017,  1020,  1026,  1029,  1035,  1036,  1039,
-    1040,  1041,  1042,  1046,  1049,  1054,  1055,  1056,  1060,  1066,
-    1069,  1075,  1081,  1086,  1094,  1097,  1106,  1109,  1115,  1116,
-    1119,  1120
+       0,   597,   597,   601,   606,   607,   611,   615,   621,   626,
+     635,   641,   646,   651,   656,   661,   666,   674,   682,   692,
+     701,   706,   710,   715,   716,   720,   725,   731,   742,   746,
+     754,   755,   756,   760,   763,   766,   769,   772,   775,   778,
+     781,   784,   787,   796,   799,   802,   805,   808,   811,   814,
+     817,   820,   823,   832,   835,   841,   844,   850,   851,   854,
+     855,   856,   857,   861,   864,   869,   870,   871,   875,   881,
+     884,   890,   896,   901,   909,   912,   921,   924,   930,   931,
+     934,   935
 };
 #endif
 
@@ -2096,7 +1909,7 @@
   yychar = YYEMPTY; /* Cause a token to be read.  */
 
 /* User initialization code.  */
-#line 746 "gabc/gabc-score-determination.y" /* yacc.c:1429  */
+#line 559 "gabc/gabc-score-determination.y" /* yacc.c:1429  */
 {
     yylloc.first_line = 1;
     yylloc.first_column = 0;
@@ -2106,7 +1919,7 @@
     yylloc.last_offset = 0;
 }
 
-#line 2110 "gabc/gabc-score-determination-y.c" /* yacc.c:1429  */
+#line 1923 "gabc/gabc-score-determination-y.c" /* yacc.c:1429  */
   yylsp[0] = yylloc;
   goto yysetstate;
 
@@ -2213,7 +2026,7 @@
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = yylex ();
+      yychar = yylex (STYLE_BITS);
     }
 
   if (yychar <= YYEOF)
@@ -2293,41 +2106,41 @@
   switch (yyn)
     {
         case 3:
-#line 786 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 601 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         end_definitions();
     }
-#line 2301 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2114 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 6:
-#line 796 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 611 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         (yyval).text = (yyvsp[-1]).text;
     }
-#line 2309 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2122 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 7:
-#line 800 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 615 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         (yyval).text = NULL;
     }
-#line 2317 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2130 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 8:
-#line 806 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 621 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         /* these definitions are not passed through */
         free(macros[(yyvsp[-1]).character - '0']);
         macros[(yyvsp[-1]).character - '0'] = (yyvsp[0]).text;
     }
-#line 2327 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2140 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 9:
-#line 811 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 626 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         if ((yyvsp[0]).text == NULL) {
             gregorio_message("name can't be empty","det_score",
@@ -2337,11 +2150,11 @@
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         score->name = (yyvsp[0]).text;
     }
-#line 2341 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2154 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 10:
-#line 820 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 635 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("language", got_language);
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
@@ -2348,61 +2161,61 @@
         gregorio_set_centering_language((yyvsp[0]).text);
         got_language = true;
     }
-#line 2352 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2165 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 11:
-#line 826 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 641 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("gabc-copyright", score->gabc_copyright != NULL);
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         score->gabc_copyright = (yyvsp[0]).text;
     }
-#line 2362 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2175 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 12:
-#line 831 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 646 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("score_copyright", score->score_copyright != NULL);
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         score->score_copyright = (yyvsp[0]).text;
     }
-#line 2372 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2185 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 13:
-#line 836 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 651 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("mode", score->mode != 0);
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         score->mode = (yyvsp[0]).text;
     }
-#line 2382 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2195 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 14:
-#line 841 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 656 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("mode-modifier", score->mode_modifier != NULL);
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         score->mode_modifier = (yyvsp[0]).text;
     }
-#line 2392 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2205 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 15:
-#line 846 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 661 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("mode-differentia", score->mode_differentia != NULL);
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         score->mode_differentia = (yyvsp[0]).text;
     }
-#line 2402 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2215 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 16:
-#line 851 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 666 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("staff-lines", got_staff_lines);
         if ((yyvsp[0]).text) {
@@ -2411,11 +2224,11 @@
             got_staff_lines = true;
         }
     }
-#line 2415 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2228 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 17:
-#line 859 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 674 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("nabc lines", score->nabc_lines != 0);
         if ((yyvsp[0]).text) {
@@ -2424,14 +2237,14 @@
             score->nabc_lines=nabc_lines;
         }
     }
-#line 2428 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2241 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 18:
-#line 867 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 682 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         if ((yyvsp[0]).text) {
-            /* DEPRECATED by 4.1 */
+            /* DEPRECATED for removal in 5.0 */
             gregorio_message("\"initial-style\" header is deprecated. Please "
             "use \\gresetinitiallines in TeX instead.",
             "gabc_score_determination_parse", VERBOSITY_DEPRECATION, 0);
@@ -2439,11 +2252,11 @@
             free((yyvsp[0]).text);
         }
     }
-#line 2443 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2256 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 19:
-#line 877 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 692 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         if (score->annotation [MAX_ANNOTATIONS - 1]) {
             gregorio_messagef("det_score", VERBOSITY_WARNING, 0,
@@ -2453,48 +2266,48 @@
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         gregorio_set_score_annotation(score, (yyvsp[0]).text);
     }
-#line 2457 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2270 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 886 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 701 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         check_multiple("author", score->author != NULL);
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         score->author = (yyvsp[0]).text;
     }
-#line 2467 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2280 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 21:
-#line 891 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 706 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
         score->legacy_oriscus_orientation = (strcmp((yyvsp[0]).text, "legacy") == 0);
     }
-#line 2476 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2289 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 22:
-#line 895 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 710 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         gregorio_add_score_header(score, (yyvsp[-1]).text, (yyvsp[0]).text);
     }
-#line 2484 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2297 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 25:
-#line 905 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 720 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         gabc_y_add_notes((yyvsp[-1]).text, (yylsp[-1]));
         free((yyvsp[-1]).text);
         nabc_state=0;
     }
-#line 2494 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2307 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 26:
-#line 910 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 725 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         gabc_y_add_notes((yyvsp[-1]).text, (yylsp[-1]));
         free((yyvsp[-1]).text);
@@ -2501,11 +2314,11 @@
         nabc_state=0;
         update_position_with_space();
     }
-#line 2505 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2318 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 916 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 731 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         if (!nabc_lines) {
             gregorio_message(_("You used character \"|\" in gabc without "
@@ -2517,342 +2330,342 @@
         free((yyvsp[-1]).text);
         nabc_state = (nabc_state + 1) % (nabc_lines+1);
     }
-#line 2521 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2334 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 28:
-#line 927 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 742 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         elements[voice]=NULL;
         nabc_state=0;
     }
-#line 2530 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2343 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 29:
-#line 931 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 746 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         elements[voice]=NULL;
         nabc_state=0;
         update_position_with_space();
     }
-#line 2540 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2353 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 33:
-#line 945 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 760 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_ITALIC);
+        add_style(ST_ITALIC);
     }
-#line 2548 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2361 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 34:
-#line 948 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 763 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_TT);
+        add_style(ST_TT);
     }
-#line 2556 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2369 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 35:
-#line 951 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 766 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_UNDERLINED);
+        add_style(ST_UNDERLINED);
     }
-#line 2564 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2377 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 36:
-#line 954 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 769 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_COLORED);
+        add_style(ST_COLORED);
     }
-#line 2572 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2385 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 37:
-#line 957 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 772 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_BOLD);
+        add_style(ST_BOLD);
     }
-#line 2580 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2393 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 38:
-#line 960 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 775 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_SMALL_CAPS);
+        add_style(ST_SMALL_CAPS);
     }
-#line 2588 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2401 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 39:
-#line 963 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 778 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_VERBATIM);
+        add_style(ST_VERBATIM);
     }
-#line 2596 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2409 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 40:
-#line 966 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 781 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_SPECIAL_CHAR);
+        add_style(ST_SPECIAL_CHAR);
     }
-#line 2604 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2417 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 41:
-#line 969 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 784 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_ELISION);
+        add_style(ST_ELISION);
     }
-#line 2612 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2425 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 42:
-#line 972 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 787 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         if (!center_is_determined) {
-            gregorio_gabc_add_style(ST_FORCED_CENTER);
+            add_style(ST_FORCED_CENTER);
             center_is_determined=CENTER_HALF_DETERMINED;
         }
     }
-#line 2623 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2436 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 43:
-#line 981 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 796 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_ITALIC);
+        end_style(ST_ITALIC);
     }
-#line 2631 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2444 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 44:
-#line 984 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 799 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_TT);
+        end_style(ST_TT);
     }
-#line 2639 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2452 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 45:
-#line 987 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 802 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_UNDERLINED);
+        end_style(ST_UNDERLINED);
     }
-#line 2647 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2460 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 46:
-#line 990 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 805 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_COLORED);
+        end_style(ST_COLORED);
     }
-#line 2655 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2468 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 47:
-#line 993 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 808 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_BOLD);
+        end_style(ST_BOLD);
     }
-#line 2663 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2476 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 48:
-#line 996 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 811 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_SMALL_CAPS);
+        end_style(ST_SMALL_CAPS);
     }
-#line 2671 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2484 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 49:
-#line 999 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 814 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_VERBATIM);
+        end_style(ST_VERBATIM);
     }
-#line 2679 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2492 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 50:
-#line 1002 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 817 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_SPECIAL_CHAR);
+        end_style(ST_SPECIAL_CHAR);
     }
-#line 2687 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2500 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 51:
-#line 1005 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 820 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_end_style(ST_ELISION);
+        end_style(ST_ELISION);
     }
-#line 2695 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2508 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 52:
-#line 1008 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 823 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         if (center_is_determined==CENTER_HALF_DETERMINED) {
-            gregorio_gabc_end_style(ST_FORCED_CENTER);
+            end_style(ST_FORCED_CENTER);
             center_is_determined=CENTER_FULLY_DETERMINED;
         }
     }
-#line 2706 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2519 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 53:
-#line 1017 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 832 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         euouae = EUOUAE_BEGINNING;
     }
-#line 2714 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2527 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 54:
-#line 1020 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 835 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         euouae = EUOUAE_END;
     }
-#line 2722 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2535 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 55:
-#line 1026 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 841 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         no_linebreak_area = NLBA_BEGINNING;
     }
-#line 2730 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2543 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 56:
-#line 1029 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 844 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         no_linebreak_area = NLBA_END;
     }
-#line 2738 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2551 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 58:
-#line 1036 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 851 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_text((yyvsp[0]).text);
+        add_text((yyvsp[0]).text);
     }
-#line 2746 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2559 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 63:
-#line 1046 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 861 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_text(gregorio_strdup("-"));
+        add_text(gregorio_strdup("-"));
     }
-#line 2754 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2567 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 64:
-#line 1049 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 864 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_text(gregorio_strdup("-"));
+        add_text(gregorio_strdup("-"));
     }
-#line 2762 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2575 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 68:
-#line 1060 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 875 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         start_translation(TR_NORMAL);
     }
-#line 2770 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2583 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 69:
-#line 1066 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 881 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         end_translation();
     }
-#line 2778 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2591 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 70:
-#line 1069 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 884 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         start_translation(TR_WITH_CENTER_END);
     }
-#line 2786 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2599 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 71:
-#line 1075 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 890 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         abovelinestext = (yyvsp[-1]).text;
     }
-#line 2794 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2607 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 72:
-#line 1081 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 896 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         ready_characters();
         first_text_character = current_character;
         close_syllable(&(yylsp[-2]));
     }
-#line 2804 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2617 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 73:
-#line 1086 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 901 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_VERBATIM);
-        gregorio_gabc_add_text(gregorio_strdup("\\GreForceHyphen"));
-        gregorio_gabc_end_style(ST_VERBATIM);
+        add_style(ST_VERBATIM);
+        add_text(gregorio_strdup("\\GreForceHyphen"));
+        end_style(ST_VERBATIM);
         ready_characters();
         first_text_character = current_character;
         close_syllable(&(yylsp[-3]));
     }
-#line 2817 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2630 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 74:
-#line 1094 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 909 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         close_syllable(&(yylsp[-3]));
     }
-#line 2825 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2638 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 75:
-#line 1097 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 912 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
-        gregorio_gabc_add_style(ST_VERBATIM);
-        gregorio_gabc_add_text(gregorio_strdup("\\GreForceHyphen"));
-        gregorio_gabc_end_style(ST_VERBATIM);
+        add_style(ST_VERBATIM);
+        add_text(gregorio_strdup("\\GreForceHyphen"));
+        end_style(ST_VERBATIM);
         close_syllable(&(yylsp[-4]));
     }
-#line 2836 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2649 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 76:
-#line 1106 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 921 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         close_syllable(NULL);
     }
-#line 2844 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2657 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
   case 77:
-#line 1109 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
+#line 924 "gabc/gabc-score-determination.y" /* yacc.c:1646  */
     {
         close_syllable(NULL);
     }
-#line 2852 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2665 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
     break;
 
 
-#line 2856 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
+#line 2669 "gabc/gabc-score-determination-y.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires

Added: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.c	                        (rev 0)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -0,0 +1,373 @@
+/*
+ * Gregorio is a program that translates gabc files to GregorioTeX
+ * This file implements the score parser.
+ *
+ * Gregorio score determination from gabc utilities.
+ * Copyright (C) 2016 The Gregorio Project (see CONTRIBUTORS.md)
+ *
+ * This file is part of Gregorio.
+ * 
+ * This program 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 3 of the License, or (at your option)
+ * any later version.
+ * 
+ * This program 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include "bool.h"
+#include "struct.h"
+#include "struct_iter.h"
+#include "gabc.h"
+#include "gabc-score-determination.h"
+#include "messages.h"
+
+void fix_custos(gregorio_score *score_to_check)
+{
+    gregorio_syllable *current_syllable;
+    gregorio_element *current_element;
+    gregorio_element *custo_element;
+    char pitch = 0;
+    char pitch_difference = 0;
+    int newkey;
+    int current_key;
+    if (!score_to_check || !score_to_check->first_syllable
+            || !score_to_check->first_voice_info) {
+        return;
+    }
+    current_key = gregorio_calculate_new_key(
+            score_to_check->first_voice_info->initial_clef);
+    current_syllable = score_to_check->first_syllable;
+    while (current_syllable) {
+        current_element = (current_syllable->elements)[0];
+        while (current_element) {
+            if (current_element->type == GRE_CUSTOS) {
+                custo_element = current_element;
+                pitch = custo_element->u.misc.pitched.pitch;
+                /* we look for the key */
+                while (current_element) {
+                    if (current_element->type == GRE_CLEF) {
+                        pitch = gregorio_determine_next_pitch(current_syllable,
+                                current_element, NULL, NULL);
+                        newkey = gregorio_calculate_new_key(
+                                current_element->u.misc.clef);
+                        pitch_difference = (char) newkey - (char) current_key;
+                        pitch -= pitch_difference;
+                        current_key = newkey;
+                    }
+                    if (!custo_element->u.misc.pitched.force_pitch) {
+                        while (pitch < LOWEST_PITCH) {
+                            pitch += 7;
+                        }
+                        while (pitch > score_to_check->highest_pitch) {
+                            pitch -= 7;
+                        }
+                        custo_element->u.misc.pitched.pitch = pitch;
+                    }
+                    assert(custo_element->u.misc.pitched.pitch >= LOWEST_PITCH 
+                            && custo_element->u.misc.pitched.pitch
+                            <= score_to_check->highest_pitch);
+                    current_element = current_element->next;
+                }
+            }
+            if (current_element) {
+                if (current_element->type == GRE_CLEF) {
+                    current_key = gregorio_calculate_new_key(
+                            current_element->u.misc.clef);
+                }
+                current_element = current_element->next;
+            }
+        }
+        current_syllable = current_syllable->next_syllable;
+    }
+}
+
+/*
+ * A function that checks the score integrity.
+ */
+
+bool check_score_integrity(gregorio_score *score_to_check)
+{
+    bool good = true;
+
+    gregorio_assert(score_to_check, check_score_integrity, "score is NULL",
+            return false);
+
+    if (score_to_check->first_syllable
+            && score_to_check->first_syllable->elements
+            && *(score_to_check->first_syllable->elements)) {
+        gregorio_character *ch;
+        if ((score_to_check->first_syllable->elements)[0]->type
+                == GRE_END_OF_LINE) {
+            gregorio_message(
+                    "line break is not supported on the first syllable",
+                    "check_score_integrity", VERBOSITY_ERROR, 0);
+            good = false;
+        }
+        if (gregorio_get_clef_change(score_to_check->first_syllable)) {
+            gregorio_message(
+                    "clef change is not supported on the first syllable",
+                    "check_score_integrity", VERBOSITY_ERROR, 0);
+            good = false;
+        }
+        /* check first syllable for elision at the beginning */
+        for (ch = score_to_check->first_syllable->text; ch;
+                ch = ch->next_character) {
+            if (ch->is_character) {
+                break;
+            } else if (ch->cos.s.style == ST_VERBATIM
+                    || ch->cos.s.style == ST_SPECIAL_CHAR) {
+                break;
+            } else if (ch->cos.s.style == ST_ELISION) {
+                gregorio_message(
+                        _("score initial may not be in an elision"),
+                        "check_score_integrity", VERBOSITY_ERROR, 0);
+                break;
+            }
+        }
+    }
+
+    return good;
+}
+
+/*
+ * Another function to be improved: this one checks the validity of the voice_infos.
+ */
+
+bool check_infos_integrity(gregorio_score *score_to_check)
+{
+    if (!score_to_check->name) {
+        gregorio_message(_("no name specified, put `name:...;' at the "
+                "beginning of the file, can be dangerous with some output "
+                "formats"), "det_score", VERBOSITY_WARNING, 0);
+    }
+    return true;
+}
+
+/* data must be (gregorio_note **) */
+static void oriscus_orientation_visit(
+        const gregorio_note_iter_position *const p, void *const data)
+{
+    gregorio_note *const note = p->note;
+    gregorio_note **const oriscus_ptr = (gregorio_note **const)data;
+    gregorio_note *const oriscus = *oriscus_ptr;
+    /* making oriscus const ensures we don't attempt to change *oriscus_ptr
+     * via oriscus */
+
+    if (oriscus) {
+        if (note->u.note.pitch <= oriscus->u.note.pitch) {
+            /* descending or unison */
+            switch(oriscus->u.note.shape) {
+            case S_ORISCUS_UNDETERMINED:
+                oriscus->u.note.shape = S_ORISCUS_DESCENDENS;
+                break;
+            case S_ORISCUS_SCAPUS_UNDETERMINED:
+                oriscus->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS;
+                break;
+            case S_ORISCUS_CAVUM_UNDETERMINED:
+                oriscus->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS;
+                break;
+            default:
+                /* not reachable unless there's a
+                 * programming error */
+                /* LCOV_EXCL_START */
+                gregorio_fail(oriscus_orientation_visit, "bad_shape");
+                break;
+                /* LCOV_EXCL_STOP */
+            }
+        } else { /* ascending */
+            switch(oriscus->u.note.shape) {
+            case S_ORISCUS_UNDETERMINED:
+                oriscus->u.note.shape = S_ORISCUS_ASCENDENS;
+                break;
+            case S_ORISCUS_SCAPUS_UNDETERMINED:
+                oriscus->u.note.shape = S_ORISCUS_SCAPUS_ASCENDENS;
+                break;
+            case S_ORISCUS_CAVUM_UNDETERMINED:
+                oriscus->u.note.shape = S_ORISCUS_CAVUM_ASCENDENS;
+                break;
+            default:
+                /* not reachable unless there's a
+                 * programming error */
+                /* LCOV_EXCL_START */
+                gregorio_fail(oriscus_orientation_visit, "bad_shape");
+                break;
+                /* LCOV_EXCL_STOP */
+            }
+        }
+        *oriscus_ptr = NULL;
+    }
+
+    switch (note->u.note.shape) {
+    case S_ORISCUS_UNDETERMINED:
+    case S_ORISCUS_SCAPUS_UNDETERMINED:
+    case S_ORISCUS_CAVUM_UNDETERMINED:
+        *oriscus_ptr = note;
+        break;
+
+    default:
+        break;
+    }
+}
+
+void determine_oriscus_orientation(const gregorio_score *const score)
+{
+    gregorio_note *oriscus = NULL;
+
+    gregorio_for_each_note(score, oriscus_orientation_visit, &oriscus);
+
+    if (oriscus) {
+        /* oriscus at the end of the score */
+        switch(oriscus->u.note.shape) {
+        case S_ORISCUS_UNDETERMINED:
+            oriscus->u.note.shape = S_ORISCUS_DESCENDENS;
+            break;
+        case S_ORISCUS_SCAPUS_UNDETERMINED:
+            oriscus->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS;
+            break;
+        case S_ORISCUS_CAVUM_UNDETERMINED:
+            oriscus->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS;
+            break;
+        default:
+            /* not reachable unless there's a programming error */
+            /* LCOV_EXCL_START */
+            gregorio_fail(determine_oriscus_orientation, "bad_shape");
+            break;
+            /* LCOV_EXCL_STOP */
+        }
+    }
+}
+
+typedef struct {
+    gregorio_note_iter_position first, previous;
+    gregorio_shape orientation;
+    int running;
+} punctum_inclinatum_vars;
+
+/* data must be (gregorio_shape *) */
+static void set_shape(const gregorio_note_iter_position *const p,
+        void *const data)
+{
+    p->note->u.note.shape = *((gregorio_shape *)data);
+}
+
+/* data must be (punctum_inclinatum_vars *) */
+static void punctum_inclinatum_orientation_visit(
+        const gregorio_note_iter_position *const p, void *const data)
+{
+    const gregorio_shape shape = p->note->u.note.shape;
+    punctum_inclinatum_vars *const v = (punctum_inclinatum_vars *)data;
+    if (shape == S_PUNCTUM_INCLINATUM_UNDETERMINED) {
+        if (v->orientation) {
+            p->note->u.note.shape = v->orientation;
+        } else {
+            /* any cases not covered here will not change running */
+            if (v->previous.note
+                    && (v->first.note || v->previous.syllable == p->syllable)) {
+                if (v->previous.note->u.note.pitch
+                        < p->note->u.note.pitch) {
+                    ++ v->running;
+                } else if (v->previous.note->u.note.pitch
+                        > p->note->u.note.pitch) {
+                    -- v->running;
+                }
+            }
+            if (!v->first.note) {
+                v->first = *p;
+            }
+        }
+    } else { /* non-inclinatum or determined inclinatum */
+        bool is_punctum_inclinatum;
+
+        /* shape can't be S_PUNCTUM_INCLINATUM_UNDETERMINED here */
+        switch (shape) {
+        case S_PUNCTUM_INCLINATUM_ASCENDENS:
+            v->orientation = S_PUNCTUM_INCLINATUM_ASCENDENS;
+            is_punctum_inclinatum = true;
+            break;
+        case S_PUNCTUM_INCLINATUM_DESCENDENS:
+        case S_PUNCTUM_INCLINATUM_DEMINUTUS:
+        case S_PUNCTUM_INCLINATUM_AUCTUS:
+        case S_PUNCTUM_CAVUM_INCLINATUM:
+        case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS:
+            v->orientation = S_PUNCTUM_INCLINATUM_DESCENDENS;
+            is_punctum_inclinatum = true;
+            break;
+        default:
+            is_punctum_inclinatum = false;
+            break;
+        }
+
+        if (v->first.note) {
+            if (!is_punctum_inclinatum) {
+                /* if v->first.note is not null,
+                 * then v->previous.note is not null */
+                if (v->previous.note->u.note.pitch
+                        < p->note->u.note.pitch
+                        && v->previous.syllable == p->syllable) {
+                    ++ v->running;
+                } else if (v->previous.note->u.note.pitch
+                        > p->note->u.note.pitch) {
+                    -- v->running;
+                }
+                v->orientation = (v->running > 0)
+                    ? S_PUNCTUM_INCLINATUM_ASCENDENS
+                    : S_PUNCTUM_INCLINATUM_DESCENDENS;
+            }
+            gregorio_from_note_to_note(&v->first, &v->previous, set_shape,
+                    &v->orientation);
+            v->first.syllable = NULL;
+            v->first.element = NULL;
+            v->first.glyph = NULL;
+            v->first.note = NULL;
+            v->running = 0;
+        }
+
+        if (!is_punctum_inclinatum) {
+            v->orientation = S_UNDETERMINED;
+        } /* otherwise, leave orientation alone */
+    }
+
+    v->previous = *p;
+}
+
+void determine_punctum_inclinatum_orientation(
+        const gregorio_score *const score)
+{
+    punctum_inclinatum_vars v = {
+        /* .first = */ {
+            /* .syllable = */ NULL,
+            /* .element = */ NULL,
+            /* .glyph = */ NULL,
+            /* .note = */ NULL
+        },
+        /* .previous = */ {
+            /* .syllable = */ NULL,
+            /* .element = */ NULL,
+            /* .glyph = */ NULL,
+            /* .note = */ NULL
+        },
+        /* .orientation = */ S_UNDETERMINED, /* because it's 0 */
+        /* .running = */ 0,
+    };
+
+    gregorio_for_each_note(score, punctum_inclinatum_orientation_visit, &v);
+    
+    if (v.first.note) {
+        v.orientation = (v.running > 0)
+            ? S_PUNCTUM_INCLINATUM_ASCENDENS
+            : S_PUNCTUM_INCLINATUM_DESCENDENS;
+        gregorio_from_note_to_note(&v.first, &v.previous, set_shape,
+                &v.orientation);
+    }
+}


Property changes on: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,8 +2,8 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This header shares definitions between the score parser and lexer.
  *
- * Gregorio score determination in gabc input.
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Gregorio score determination from gabc.
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 
@@ -21,8 +21,24 @@
  * this program.  If not, see <http://www.gnu.org/licenses/>. 
  */
 
+#ifndef GABC_SCORE_DETERMINATION_H
+#define GABC_SCORE_DETERMINATION_H
+
+#include "bool.h"
+#include "struct.h"
 #include "gabc.h"
 
+/* The bits in this enum are named to correspond with the _BEGIN/_END tokens */
+typedef enum {
+    SB_I = 0x01,
+    SB_B = 0x02,
+    SB_TT = 0x04,
+    SB_SC = 0x08,
+    SB_UL = 0x10,
+    SB_C = 0x20,
+    SB_ELISION = 0x40
+} gabc_style_bits;
+
 typedef union gabc_score_determination_lval_t {
     char *text;
     char character;
@@ -31,7 +47,16 @@
 #define YYSTYPE gabc_score_determination_lval_t
 #define YYSTYPE_IS_DECLARED 1
 
-int gabc_score_determination_lex(void);
-#define YY_DECL int gabc_score_determination_lex(void)
+#define YY_DECL \
+    int gabc_score_determination_lex(gabc_style_bits *const styles)
+YY_DECL;
 
 #define YYLTYPE gregorio_scanner_location
+
+void fix_custos(gregorio_score *score_to_check);
+bool check_score_integrity(gregorio_score *score_to_check);
+bool check_infos_integrity(gregorio_score *score_to_check);
+void determine_oriscus_orientation(const gregorio_score *score);
+void determine_punctum_inclinatum_orientation(const gregorio_score *score);
+
+#endif

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.l
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.l	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.l	2016-09-25 06:05:30 UTC (rev 42143)
@@ -4,22 +4,22 @@
  * This file implements the score lexer.
  *
  * Gregorio score determination in gabc input.
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
- * 
+ *
  * This program 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 3 of the License, or (at your option)
  * any later version.
- * 
+ *
  * This program 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 <http://www.gnu.org/licenses/>. 
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "config.h"
@@ -35,9 +35,35 @@
 #include "gabc-score-determination.h"
 #include "gabc-score-determination-y.h"
 
-static unsigned char style_stack = 0;
 static bool eof_found = false;
 
+#define START_STYLE(STYLE) \
+    if (*styles & SB_ ## STYLE) { \
+        gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, \
+                _("style already started: %s"), gabc_score_determination_text); \
+    } else { \
+        *styles ^= SB_ ## STYLE; \
+        return STYLE ## _BEGIN; \
+    }
+
+#define END_STYLE(STYLE) \
+    if (*styles & SB_ ## STYLE) { \
+        *styles ^= SB_ ## STYLE; \
+        return STYLE ## _END; \
+    } else { \
+        gregorio_messagef("gabc_score_determination_lex", VERBOSITY_ERROR, 0, \
+                _("style not started: %s"), gabc_score_determination_text); \
+    }
+
+#define RETURN_CHARACTERS \
+    gabc_score_determination_lval.text = \
+            gregorio_strdup(gabc_score_determination_text); \
+    return CHARACTERS
+
+#define RETURN_SPACE \
+    gabc_score_determination_lval.text = gregorio_strdup(" "); \
+    return CHARACTERS
+
 #define YY_NO_INPUT
 
 #define YY_INPUT(buf,result,max_size) \
@@ -78,7 +104,7 @@
 %x attribute
 %x score
 %x notes
-%x style
+%x sp
 %x verb
 %x comments
 %x inicomments
@@ -106,7 +132,7 @@
 semicolon. */
 
 %%
-<INITIAL>^(\xBB|\xEF|\xBF)* {
+<INITIAL>^(\xBB|\xEF|\xBF)+ {
         /* BOM written by a lot of windows softwares when they write UTF-8 */
     }
 <INITIAL>^[\n\r]+ {
@@ -118,7 +144,7 @@
 <inicomments>(\n|\r)+ {
         BEGIN(INITIAL);
     }
-<inicomments>[^\n\r]* {
+<inicomments>[^\n\r]+ {
         /* ignored */
     }
 <INITIAL>:(\ )? {
@@ -154,7 +180,7 @@
         return GABC_COPYRIGHT;
     }
 <INITIAL>initial-style {
-        /* DEPRECATED by 4.1 */
+        /* DEPRECATED for removal in 5.0 */
         return INITIAL_STYLE;
     }
 <INITIAL>mode {
@@ -216,121 +242,77 @@
                 _("unrecognized character: \"%c\" in definition part"),
                 gabc_score_determination_text[0]);
     }
-<score>[^-\{\}\(\[\]<%]+ {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+<score>[\n\r][\n\r \t]* {
+        RETURN_SPACE;
     }
+<score,sp>[^-\{\}\(\[\]<%\n\r]+ {
+        RETURN_CHARACTERS;
+    }
 <score>- {
         return HYPHEN;
     }
-<score,style><nlba> {
+<score><nlba> {
         return NLBA_B;
     }
-<score,style><\/nlba> {
+<score><\/nlba> {
         return NLBA_E;
     }
-<score,style><i> {
-        BEGIN(style);
-        style_stack ++;
-        return I_BEGIN;
+<score><i> {
+        START_STYLE(I);
     }
-<style><\/i> {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return I_END;
+<score><\/i> {
+        END_STYLE(I);
     }
-<score,style><tt> {
-        BEGIN(style);
-        style_stack ++;
-        return TT_BEGIN;
+<score><tt> {
+        START_STYLE(TT);
     }
-<style><\/tt> {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return TT_END;
+<score><\/tt> {
+        END_STYLE(TT);
     }
-<score,style><ul> {
-        BEGIN(style);
-        style_stack ++;
-        return UL_BEGIN;
+<score><ul> {
+        START_STYLE(UL);
     }
-<style><\/ul> {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return UL_END;
+<score><\/ul> {
+        END_STYLE(UL);
     }
-<score,style><c> {
-        BEGIN(style);
-        style_stack ++;
-        return C_BEGIN;
+<score><c> {
+        START_STYLE(C);
     }
-<style><\/c> {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return C_END;
+<score><\/c> {
+        END_STYLE(C);
     }
-<score,style><b> {
-        BEGIN(style);
-        style_stack ++;
-        return B_BEGIN;
+<score><b> {
+        START_STYLE(B);
     }
-<style><\/b> {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return B_END;
+<score><\/b> {
+        END_STYLE(B);
     }
-<score,style><sc> {
-        BEGIN(style);
-        style_stack ++;
-        return SC_BEGIN;
+<score><sc> {
+        START_STYLE(SC);
     }
-<style><\/sc> {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return SC_END;
+<score><\/sc> {
+        END_STYLE(SC);
     }
-<score,style><e> {
-        BEGIN(style);
-        style_stack ++;
-        return ELISION_BEGIN;
+<score><e> {
+        START_STYLE(ELISION);
     }
-<style><\/e> {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
-        return ELISION_END;
+<score><\/e> {
+        END_STYLE(ELISION);
     }
-<score,style><sp> {
-        BEGIN(style);
-        style_stack ++;
+<score><sp> {
+        BEGIN(sp);
         return SP_BEGIN;
     }
-<style><\/sp> {
-        style_stack --;
-        if (style_stack == 0) {
-            BEGIN(score);
-        }
+<sp><\/sp> {
+        BEGIN(score);
         return SP_END;
     }
-<style>[^<\{\}]* {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+<sp>[\n\r][\n\r \t]* {
+        RETURN_SPACE;
     }
+<sp>[^<\{\}\n\r]+ {
+        RETURN_CHARACTERS;
+    }
 <score>\% {
         BEGIN(comments);
     }
@@ -337,35 +319,27 @@
 <comments>(\n|\r)+ {
         BEGIN(score);
     }
-<comments>[^\n\r]* {
+<comments>[^\n\r]+ {
         /* ignored */
     }
-<style,score><v> {
+<score><v> {
         BEGIN(verb);
         return VERB_BEGIN;
     }
 <verb><\/v> {
-        if (style_stack == 0) {
-            BEGIN(score);
-        } else {
-            BEGIN(style);
-        }
+        BEGIN(score);
         return VERB_END;
     }
-<verb>[^<]* {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+<verb,alt>[^<]+ {
+        RETURN_CHARACTERS;
     }
-<verb,style,score,alt>< {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
+<verb,sp,score,alt>< {
+        RETURN_CHARACTERS;
     }
-<score,style>\{ {
+<score>\{ {
         return CENTER_BEGIN;
     }
-<score,style>\} {
+<score>\} {
         return CENTER_END;
     }
 <score><alt> {
@@ -372,11 +346,6 @@
         BEGIN(alt);
         return ALT_BEGIN;
     }
-<alt>[^<]* {
-        gabc_score_determination_lval.text =
-                gregorio_strdup(gabc_score_determination_text);
-        return CHARACTERS;
-    }
 <alt><\/alt> {
         BEGIN(score);
         return ALT_END;
@@ -400,7 +369,7 @@
         BEGIN(notes);
         return OPENING_BRACKET;
     }
-<notes>[^|\)]* {
+<notes>[^|\)]+ {
         gabc_score_determination_lval.text =
                 gregorio_strdup(gabc_score_determination_text);
         return NOTES;

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.y
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.y	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-score-determination.y	2016-09-25 06:05:30 UTC (rev 42143)
@@ -3,8 +3,8 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file implements the score parser.
  *
- * Gregorio score determination in gabc input.
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Gregorio score determination from gabc.
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 
@@ -60,6 +60,12 @@
 #include "gabc-score-determination.h"
 #include "gabc-score-determination-l.h"
 
+/* workaround for bison issue passing pointer to a "local" variable */
+#define STYLE_BITS &styles
+
+/* forward declaration of the flex/bison process function */
+static int gabc_score_determination_parse(void);
+
 /* uncomment it if you want to have an interactive shell to understand the
  * details on how bison works for a certain input */
 /* int gabc_score_determination_debug=1; */
@@ -78,8 +84,6 @@
 gregorio_element *current_element;
 /* a table containing the macros to use in gabc file */
 static char *macros[10];
-/* forward declaration of the flex/bison process function */
-static int gabc_score_determination_parse(void);
 /* other variables that we will have to use */
 static gregorio_character *current_character;
 static gregorio_character *first_text_character;
@@ -95,11 +99,29 @@
 /* current_key is... the current key... updated by each notes determination
  * (for key changes) */
 static int current_key;
-static bool got_language = false;
-static bool got_staff_lines = false;
-static bool started_first_word = false;
+static bool got_language;
+static bool got_staff_lines;
+static bool started_first_word;
 static struct sha1_ctx digester;
+static gabc_style_bits styles;
 
+/* punctum_inclinatum_orientation maintains the running punctum inclinatum
+ * orientation in order to decide if the glyph needs to be cut when a punctum
+ * inclinatum with forced orientation is encountered.  This should be set to
+ * the shape of a non-liquescent punctum inclinatum with forced orientation
+ * when one is encountered, be left alone when a non-liquescent punctum
+ * inclinatum with undetermined orientation is encountered, or be reset to
+ * S_PUNCTUM_INCLINATUM_UNDETERMINED otherwise (because such ends any previous
+ * run of punctum inclinatum notes).  Based on the assumption that a punctum
+ * inclinatum with forced orientation changes all the punctum inclinatum shapes
+ * with undetermined orientation in the same run of notes before and after it
+ * unless influenced by an earlier punctum inclinatum with forced orientation,
+ * the value of punctum_inclinatum_orientation can be used to determine if a
+ * punctum inclinatum with a forced orientation will have a different
+ * orientation than the punctum inclinatum immediately before it, which would
+ * require a cut of the glyph. */
+static gregorio_shape punctum_inclinatum_orientation;
+
 static __inline void check_multiple(const char *name, bool exists) {
     if (exists) {
         gregorio_messagef("det_score", VERBOSITY_WARNING, 0,
@@ -114,129 +136,7 @@
             VERBOSITY_ERROR, 0);
 }
 
-static void fix_custos(gregorio_score *score_to_check)
-{
-    gregorio_syllable *current_syllable;
-    gregorio_element *current_element;
-    gregorio_element *custo_element;
-    char pitch = 0;
-    char pitch_difference = 0;
-    int newkey;
-    int current_key;
-    if (!score_to_check || !score_to_check->first_syllable
-            || !score_to_check->first_voice_info) {
-        return;
-    }
-    current_key = gregorio_calculate_new_key(
-            score_to_check->first_voice_info->initial_clef);
-    current_syllable = score_to_check->first_syllable;
-    while (current_syllable) {
-        current_element = (current_syllable->elements)[0];
-        while (current_element) {
-            if (current_element->type == GRE_CUSTOS) {
-                custo_element = current_element;
-                pitch = custo_element->u.misc.pitched.pitch;
-                /* we look for the key */
-                while (current_element) {
-                    if (current_element->type == GRE_CLEF) {
-                        pitch = gregorio_determine_next_pitch( current_syllable,
-                                current_element, NULL);
-                        newkey = gregorio_calculate_new_key(
-                                current_element->u.misc.clef);
-                        pitch_difference = (char) newkey - (char) current_key;
-                        pitch -= pitch_difference;
-                        current_key = newkey;
-                    }
-                    if (!custo_element->u.misc.pitched.force_pitch) {
-                        while (pitch < LOWEST_PITCH) {
-                            pitch += 7;
-                        }
-                        while (pitch > score_to_check->highest_pitch) {
-                            pitch -= 7;
-                        }
-                        custo_element->u.misc.pitched.pitch = pitch;
-                    }
-                    assert(custo_element->u.misc.pitched.pitch >= LOWEST_PITCH 
-                            && custo_element->u.misc.pitched.pitch
-                            <= score_to_check->highest_pitch);
-                    current_element = current_element->next;
-                }
-            }
-            if (current_element) {
-                if (current_element->type == GRE_CLEF) {
-                    current_key = gregorio_calculate_new_key(
-                            current_element->u.misc.clef);
-                }
-                current_element = current_element->next;
-            }
-        }
-        current_syllable = current_syllable->next_syllable;
-    }
-}
-
 /*
- * A function that checks the score integrity.
- */
-
-static bool check_score_integrity(gregorio_score *score_to_check)
-{
-    bool good = true;
-
-    gregorio_assert(score_to_check, check_score_integrity, "score is NULL",
-            return false);
-
-    if (score_to_check->first_syllable
-            && score_to_check->first_syllable->elements
-            && *(score_to_check->first_syllable->elements)) {
-        gregorio_character *ch;
-        if ((score_to_check->first_syllable->elements)[0]->type
-                == GRE_END_OF_LINE) {
-            gregorio_message(
-                    "line break is not supported on the first syllable",
-                    "check_score_integrity", VERBOSITY_ERROR, 0);
-            good = false;
-        }
-        if (gregorio_get_clef_change(score_to_check->first_syllable)) {
-            gregorio_message(
-                    "clef change is not supported on the first syllable",
-                    "check_score_integrity", VERBOSITY_ERROR, 0);
-            good = false;
-        }
-        /* check first syllable for elision at the beginning */
-        for (ch = score_to_check->first_syllable->text; ch;
-                ch = ch->next_character) {
-            if (ch->is_character) {
-                break;
-            } else if (ch->cos.s.style == ST_VERBATIM
-                    || ch->cos.s.style == ST_SPECIAL_CHAR) {
-                break;
-            } else if (ch->cos.s.style == ST_ELISION) {
-                gregorio_message(
-                        _("score initial may not be in an elision"),
-                        "check_score_integrity", VERBOSITY_ERROR, 0);
-                break;
-            }
-        }
-    }
-
-    return good;
-}
-
-/*
- * Another function to be improved: this one checks the validity of the voice_infos.
- */
-
-static bool check_infos_integrity(gregorio_score *score_to_check)
-{
-    if (!score_to_check->name) {
-        gregorio_message(_("no name specified, put `name:...;' at the "
-                "beginning of the file, can be dangerous with some output "
-                "formats"), "det_score", VERBOSITY_WARNING, 0);
-    }
-    return true;
-}
-
-/*
  * The function that will initialize the variables. 
  */
 
@@ -266,6 +166,8 @@
     got_language = false;
     got_staff_lines = false;
     started_first_word = false;
+    styles = 0;
+    punctum_inclinatum_orientation = S_PUNCTUM_INCLINATUM_UNDETERMINED;
 }
 
 /*
@@ -512,13 +414,51 @@
 }
 
 /*
- * gregorio_gabc_add_text is the function called when lex returns a char *. In
+ * 
+ * The two functions called when lex returns a style, we simply add it. All the 
+ * complex things will be done by the function after...
+ * 
+ */
+
+static void add_style(unsigned char style)
+{
+    gregorio_begin_style(&current_character, style);
+}
+
+static void end_style(unsigned char style)
+{
+    gregorio_end_style(&current_character, style);
+}
+
+/*
+ * add_text is the function called when lex returns a char *. In
  * this function we convert it into grewchar, and then we add the corresponding 
  * gregorio_characters in the list of gregorio_characters. 
  */
 
-static void gregorio_gabc_add_text(char *mbcharacters)
+static void add_text(char *mbcharacters)
 {
+    if (!current_character) {
+        /* insert open styles, leaving out ELISION on purpose */
+        if (styles & SB_I) {
+            add_style(ST_ITALIC);
+        }
+        if (styles & SB_B) {
+            add_style(ST_BOLD);
+        }
+        if (styles & SB_TT) {
+            add_style(ST_TT);
+        }
+        if (styles & SB_SC) {
+            add_style(ST_SMALL_CAPS);
+        }
+        if (styles & SB_UL) {
+            add_style(ST_UNDERLINED);
+        }
+        if (styles & SB_C) {
+            add_style(ST_COLORED);
+        }
+    }
     if (current_character) {
         current_character->next_character = gregorio_build_char_list_from_buf(
                 mbcharacters);
@@ -533,140 +473,11 @@
     free(mbcharacters);
 }
 
-/*
- * 
- * The two functions called when lex returns a style, we simply add it. All the 
- * complex things will be done by the function after...
- * 
- */
-
-static void gregorio_gabc_add_style(unsigned char style)
-{
-    gregorio_begin_style(&current_character, style);
-}
-
-static void gregorio_gabc_end_style(unsigned char style)
-{
-    gregorio_end_style(&current_character, style);
-}
-
 void gabc_digest(const void *const buf, const size_t size)
 {
     sha1_process_bytes(buf, size, &digester);
 }
 
-static void determine_oriscus_orientation(gregorio_score *score) {
-    gregorio_syllable *syllable;
-    gregorio_element *element;
-    gregorio_glyph *glyph;
-    gregorio_note *note;
-    gregorio_note *oriscus = NULL;
-
-    for (syllable = score->first_syllable; syllable;
-            syllable = syllable->next_syllable) {
-        for (element = syllable->elements[0]; element;
-                element = element->next) {
-            if (element->type == GRE_ELEMENT) {
-                for (glyph = element->u.first_glyph; glyph;
-                        glyph = glyph->next) {
-                    if (glyph->type == GRE_GLYPH) {
-                        for (note = glyph->u.notes.first_note; note;
-                                note = note->next) {
-                            if (note->type == GRE_NOTE) {
-                                if (oriscus) {
-                                    if (note->u.note.pitch
-                                            < oriscus->u.note.pitch) {
-                                        switch(oriscus->u.note.shape) {
-                                        case S_ORISCUS_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_DESCENDENS;
-                                            break;
-                                        case S_ORISCUS_SCAPUS_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_SCAPUS_DESCENDENS;
-                                            break;
-                                        case S_ORISCUS_CAVUM_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_CAVUM_DESCENDENS;
-                                            break;
-                                        default:
-                                            /* not reachable unless there's a
-                                             * programming error */
-                                            /* LCOV_EXCL_START */
-                                            gregorio_fail(
-                                                    determine_oriscus_orientation,
-                                                    "bad_shape");
-                                            break;
-                                            /* LCOV_EXCL_STOP */
-                                        }
-                                    } else { /* ascending or the same */
-                                        switch(oriscus->u.note.shape) {
-                                        case S_ORISCUS_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_ASCENDENS;
-                                            break;
-                                        case S_ORISCUS_SCAPUS_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_SCAPUS_ASCENDENS;
-                                            break;
-                                        case S_ORISCUS_CAVUM_UNDETERMINED:
-                                            oriscus->u.note.shape =
-                                                    S_ORISCUS_CAVUM_ASCENDENS;
-                                            break;
-                                        default:
-                                            /* not reachable unless there's a
-                                             * programming error */
-                                            /* LCOV_EXCL_START */
-                                            gregorio_fail(
-                                                    determine_oriscus_orientation,
-                                                    "bad_shape");
-                                            break;
-                                            /* LCOV_EXCL_STOP */
-                                        }
-                                    }
-                                    oriscus = NULL;
-                                }
-
-                                switch (note->u.note.shape) {
-                                case S_ORISCUS_UNDETERMINED:
-                                case S_ORISCUS_SCAPUS_UNDETERMINED:
-                                case S_ORISCUS_CAVUM_UNDETERMINED:
-                                    oriscus = note;
-                                    break;
-
-                                default:
-                                    break;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    if (oriscus) {
-        /* oriscus at the end of the score */
-        switch(oriscus->u.note.shape) {
-        case S_ORISCUS_UNDETERMINED:
-            oriscus->u.note.shape = S_ORISCUS_DESCENDENS;
-            break;
-        case S_ORISCUS_SCAPUS_UNDETERMINED:
-            oriscus->u.note.shape = S_ORISCUS_SCAPUS_DESCENDENS;
-            break;
-        case S_ORISCUS_CAVUM_UNDETERMINED:
-            oriscus->u.note.shape = S_ORISCUS_CAVUM_DESCENDENS;
-            break;
-        default:
-            /* not reachable unless there's a programming error */
-            /* LCOV_EXCL_START */
-            gregorio_fail(determine_oriscus_orientation, "bad_shape");
-            break;
-            /* LCOV_EXCL_STOP */
-        }
-    }
-}
-
 /*
  * The "main" function. It is the function that is called when we have to read
  * a gabc file. It takes a file descriptor, that is to say a file that is
@@ -691,6 +502,7 @@
     if (!score->legacy_oriscus_orientation) {
         determine_oriscus_orientation(score);
     }
+    determine_punctum_inclinatum_orientation(score);
     gregorio_fix_initial_keys(score, gregorio_default_clef);
     rebuild_score_characters();
     fix_custos(score);
@@ -711,12 +523,13 @@
 static void gabc_y_add_notes(char *notes, YYLTYPE loc) {
     if (nabc_state == 0) {
         if (!elements[voice]) {
-            elements[voice] = gabc_det_elements_from_string(notes,
-                    &current_key, macros, &loc, score);
+            elements[voice] = gabc_det_elements_from_string(notes, &current_key,
+                    macros, &loc, &punctum_inclinatum_orientation, score);
             current_element = elements[voice];
         } else {
             gregorio_element *new_elements = gabc_det_elements_from_string(
-                    notes, &current_key, macros, &loc, score);
+                    notes, &current_key, macros, &loc,
+                    &punctum_inclinatum_orientation, score);
             gregorio_element *last_element = elements[voice];
             while (last_element->next) {
                 last_element = last_element->next;
@@ -752,11 +565,13 @@
     @$.last_offset = 0;
 }
 
+%lex-param { gabc_style_bits *STYLE_BITS }
+
 %token NAME AUTHOR GABC_COPYRIGHT SCORE_COPYRIGHT
 %token LANGUAGE STAFF_LINES ORISCUS_ORIENTATION
 %token DEF_MACRO OTHER_HEADER
 %token ANNOTATION MODE MODE_MODIFIER MODE_DIFFERENTIA
-%token INITIAL_STYLE /* DEPRECATED by 4.1 */
+%token INITIAL_STYLE /* DEPRECATED for removal in 5.0 */
 %token END_OF_DEFINITIONS END_OF_FILE
 %token COLON SEMICOLON SPACE CHARACTERS NOTES HYPHEN ATTRIBUTE
 %token OPENING_BRACKET CLOSING_BRACKET CLOSING_BRACKET_WITH_SPACE
@@ -866,7 +681,7 @@
     }
     | INITIAL_STYLE attribute {
         if ($2.text) {
-            /* DEPRECATED by 4.1 */
+            /* DEPRECATED for removal in 5.0 */
             gregorio_message("\"initial-style\" header is deprecated. Please "
             "use \\gresetinitiallines in TeX instead.",
             "gabc_score_determination_parse", VERBOSITY_DEPRECATION, 0);
@@ -943,35 +758,35 @@
 
 style_beginning:
     I_BEGIN {
-        gregorio_gabc_add_style(ST_ITALIC);
+        add_style(ST_ITALIC);
     }
     | TT_BEGIN {
-        gregorio_gabc_add_style(ST_TT);
+        add_style(ST_TT);
     }
     | UL_BEGIN {
-        gregorio_gabc_add_style(ST_UNDERLINED);
+        add_style(ST_UNDERLINED);
     }
     | C_BEGIN {
-        gregorio_gabc_add_style(ST_COLORED);
+        add_style(ST_COLORED);
     }
     | B_BEGIN {
-        gregorio_gabc_add_style(ST_BOLD);
+        add_style(ST_BOLD);
     }
     | SC_BEGIN {
-        gregorio_gabc_add_style(ST_SMALL_CAPS);
+        add_style(ST_SMALL_CAPS);
     }
     | VERB_BEGIN {
-        gregorio_gabc_add_style(ST_VERBATIM);
+        add_style(ST_VERBATIM);
     }
     | SP_BEGIN {
-        gregorio_gabc_add_style(ST_SPECIAL_CHAR);
+        add_style(ST_SPECIAL_CHAR);
     }
     | ELISION_BEGIN {
-        gregorio_gabc_add_style(ST_ELISION);
+        add_style(ST_ELISION);
     }
     | CENTER_BEGIN {
         if (!center_is_determined) {
-            gregorio_gabc_add_style(ST_FORCED_CENTER);
+            add_style(ST_FORCED_CENTER);
             center_is_determined=CENTER_HALF_DETERMINED;
         }
     }
@@ -979,35 +794,35 @@
 
 style_end:
     I_END {
-        gregorio_gabc_end_style(ST_ITALIC);
+        end_style(ST_ITALIC);
     }
     | TT_END {
-        gregorio_gabc_end_style(ST_TT);
+        end_style(ST_TT);
     }
     | UL_END {
-        gregorio_gabc_end_style(ST_UNDERLINED);
+        end_style(ST_UNDERLINED);
     }
     | C_END {
-        gregorio_gabc_end_style(ST_COLORED);
+        end_style(ST_COLORED);
     }
     | B_END {
-        gregorio_gabc_end_style(ST_BOLD);
+        end_style(ST_BOLD);
     }
     | SC_END {
-        gregorio_gabc_end_style(ST_SMALL_CAPS);
+        end_style(ST_SMALL_CAPS);
     }
     | VERB_END {
-        gregorio_gabc_end_style(ST_VERBATIM);
+        end_style(ST_VERBATIM);
     }
     | SP_END {
-        gregorio_gabc_end_style(ST_SPECIAL_CHAR);
+        end_style(ST_SPECIAL_CHAR);
     }
     | ELISION_END {
-        gregorio_gabc_end_style(ST_ELISION);
+        end_style(ST_ELISION);
     }
     | CENTER_END {
         if (center_is_determined==CENTER_HALF_DETERMINED) {
-            gregorio_gabc_end_style(ST_FORCED_CENTER);
+            end_style(ST_FORCED_CENTER);
             center_is_determined=CENTER_FULLY_DETERMINED;
         }
     }
@@ -1034,7 +849,7 @@
 character:
     above_line_text
     | CHARACTERS {
-        gregorio_gabc_add_text($1.text);
+        add_text($1.text);
     }
     | style_beginning
     | style_end
@@ -1044,10 +859,10 @@
 
 text_hyphen:
     HYPHEN {
-        gregorio_gabc_add_text(gregorio_strdup("-"));
+        add_text(gregorio_strdup("-"));
     }
     | text_hyphen HYPHEN {
-        gregorio_gabc_add_text(gregorio_strdup("-"));
+        add_text(gregorio_strdup("-"));
     }
     ;
 
@@ -1084,9 +899,9 @@
         close_syllable(&@1);
     }
     | text HYPHEN OPENING_BRACKET notes {
-        gregorio_gabc_add_style(ST_VERBATIM);
-        gregorio_gabc_add_text(gregorio_strdup("\\GreForceHyphen"));
-        gregorio_gabc_end_style(ST_VERBATIM);
+        add_style(ST_VERBATIM);
+        add_text(gregorio_strdup("\\GreForceHyphen"));
+        end_style(ST_VERBATIM);
         ready_characters();
         first_text_character = current_character;
         close_syllable(&@1);
@@ -1095,9 +910,9 @@
         close_syllable(&@1);
     }
     | text HYPHEN translation OPENING_BRACKET notes {
-        gregorio_gabc_add_style(ST_VERBATIM);
-        gregorio_gabc_add_text(gregorio_strdup("\\GreForceHyphen"));
-        gregorio_gabc_end_style(ST_VERBATIM);
+        add_style(ST_VERBATIM);
+        add_text(gregorio_strdup("\\GreForceHyphen"));
+        end_style(ST_VERBATIM);
         close_syllable(&@1);
     }
     ;

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-write.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-write.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc-write.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file provides functions for writing gabc from Gregorio structures.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 
@@ -480,9 +480,12 @@
             fprintf(f, "%c", pitch_letter(note->u.note.pitch));
         }
         break;
-    case S_PUNCTUM_INCLINATUM:
-        fprintf(f, "%c", toupper((unsigned char)pitch_letter(note->u.note.pitch)));
+    case S_PUNCTUM_INCLINATUM_ASCENDENS:
+        fprintf(f, "%c1", toupper((unsigned char)pitch_letter(note->u.note.pitch)));
         break;
+    case S_PUNCTUM_INCLINATUM_DESCENDENS:
+        fprintf(f, "%c0", toupper((unsigned char)pitch_letter(note->u.note.pitch)));
+        break;
     case S_PUNCTUM_INCLINATUM_DEMINUTUS:
         if (note->next) {
             fprintf(f, "%c~", toupper((unsigned char)pitch_letter(note->u.note.pitch)));

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gabc/gabc.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This header prototypes gabc-format handling data structures and entry points.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 
@@ -23,8 +23,6 @@
 #ifndef GABC_H
 #define GABC_H
 
-#define GABC_CURRENT_VERSION "0.9.3"
-
 #include "struct.h"
 
 /* functions to read gabc */
@@ -33,9 +31,11 @@
 void gabc_det_notes_finish(void);
 gregorio_element *gabc_det_elements_from_string(char *str, int *current_key,
         char *macros[10], gregorio_scanner_location *loc,
+        gregorio_shape *punctum_inclinatum_orientation,
         const gregorio_score *const score);
 gregorio_glyph *gabc_det_glyphs_from_notes(gregorio_note *current_note,
-        int *current_key, const gregorio_score *score);
+        int *current_key, gregorio_shape *punctum_inclinatum_orientation,
+        const gregorio_score *score);
 void gabc_digest(const void *buf, size_t size);
 int gabc_score_determination_lex_destroy(void);
 int gabc_notes_determination_lex_destroy(void);

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gregorio-utils.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gregorio-utils.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gregorio-utils.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file implements the command line interface of Gregorio.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *
@@ -139,8 +139,8 @@
     int l;
     char *ret;
     p = strrchr(fbasename, '.');
-    if (!p) {
-        return NULL;
+    if (!p || strchr(p, '/') || strchr(p, '\\')) {
+        return gregorio_strdup(fbasename);
     }
     l = strlen(fbasename) - strlen(p);
     ret = (char *) gregorio_malloc(l + 1);
@@ -202,6 +202,7 @@
   -L, --license             print licence\n\
   -v, --verbose             verbose mode\n\
   -W, --all-warnings        output warnings\n\
+  -D, --deprecation-errors  treat deprecation warnings as errors\n\
   -d, --debug               output debug information\n\
 \n\
 Formats:\n\
@@ -324,6 +325,7 @@
     gregorio_file_format input_format = FORMAT_UNSET;
     gregorio_file_format output_format = FORMAT_UNSET;
     gregorio_verbosity verb_mode = 0;
+    bool deprecation_errors = false;
     bool point_and_click = false;
     char *point_and_click_filename = NULL;
     bool debug = false;
@@ -341,6 +343,7 @@
         {"licence", 0, 0, 'L'},
         {"verbose", 0, 0, 'v'},
         {"all-warnings", 0, 0, 'W'},
+        {"deprecation-errors", 0, 0, 'D'},
         {"point-and-click", 0, 0, 'p'},
         {"debug", 0, 0, 'd'},
     };
@@ -356,7 +359,7 @@
     setlocale(LC_CTYPE, "C");
 
     while (1) {
-        c = getopt_long(argc, argv, "o:SF:l:f:shOLVvWpd",
+        c = getopt_long(argc, argv, "o:SF:l:f:shOLVvWDpd",
                         long_options, &option_index);
         if (c == -1)
             break;
@@ -481,6 +484,15 @@
                 verb_mode = VERBOSITY_WARNING;
             }
             break;
+        case 'D':
+            if (deprecation_errors) {
+                fprintf(stderr, "warning: deprecation-errors option passed "
+                        "several times\n");
+                must_print_short_usage = true;
+                break;
+            }
+            deprecation_errors = true;
+            break;
         case 'L':
             print_licence();
             gregorio_exit(0);
@@ -548,6 +560,7 @@
     }
 
     gregorio_set_debug_messages(debug);
+    gregorio_set_deprecation_errors(deprecation_errors);
 
     if (!input_format) {
         input_format = DEFAULT_INPUT_FORMAT;

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-position.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-position.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-position.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file contains the logic for positioning signs on neumes.
  *
- * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 
@@ -909,7 +909,8 @@
             note->gtex_offset_case = FinalInclinatumDeminutus;
             break;
         case S_PUNCTUM_INCLINATUM_AUCTUS:
-        case S_PUNCTUM_INCLINATUM:
+        case S_PUNCTUM_INCLINATUM_ASCENDENS:
+        case S_PUNCTUM_INCLINATUM_DESCENDENS:
         case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS:
         case S_PUNCTUM_CAVUM_INCLINATUM:
             note->gtex_offset_case = FinalInclinatum;
@@ -1336,7 +1337,8 @@
 
 static __inline bool has_space_to_left(const gregorio_note *const note) {
     switch (note->u.note.shape) {
-    case S_PUNCTUM_INCLINATUM:
+    case S_PUNCTUM_INCLINATUM_ASCENDENS:
+    case S_PUNCTUM_INCLINATUM_DESCENDENS:
     case S_PUNCTUM_INCLINATUM_DEMINUTUS:
     case S_PUNCTUM_INCLINATUM_AUCTUS:
         return !is_connectable_interglyph_ambitus(note->previous, note);
@@ -1610,51 +1612,33 @@
         return 0;
     }
 
-    /* the FLEXA check below checks for a porrectus-like flexus, which is not
-     * fusible from above */
-    if (shift < 0 && ((next_is_fused && glyph->u.notes.glyph_type == G_FLEXA)
+    if (shift < 0) {
+        if (glyph->u.notes.glyph_type == G_PODATUS) {
+            if (glyph->u.notes.liquescentia & L_DEMINUTUS) {
+                /* podatus deminutus may be fused from above */
+                return shift;
+            }
+            switch (first_note->u.note.shape) {
+            case S_ORISCUS_ASCENDENS:
+            case S_ORISCUS_DESCENDENS:
+            case S_ORISCUS_SCAPUS_ASCENDENS:
+            case S_ORISCUS_SCAPUS_DESCENDENS:
+                return shift;
+            default:
+                /* otherwise, podatus may not be fused from above */
+                return 0;
+            }
+        }
+
+        /* the FLEXA check below checks for a porrectus-like flexus, which is
+         * not fusible from above */
+        if ((next_is_fused && glyph->u.notes.glyph_type == G_FLEXA)
                 || glyph->u.notes.glyph_type == G_PORRECTUS
-                || (glyph->u.notes.glyph_type == G_PODATUS
-                    && !(glyph->u.notes.liquescentia & L_DEMINUTUS))
                 || (previous->u.notes.glyph_type == G_PUNCTUM
-                    && is_initio_debilis(previous->u.notes.liquescentia)))) {
-        /* may not be fused from above */
-        return 0;
-    }
-
-    /* Special cases for oriscus */
-    switch (first_note->u.note.shape) {
-        gregorio_note *next_note;
-        const gregorio_glyph *next_glyph;
-    case S_ORISCUS_ASCENDENS:
-    case S_ORISCUS_DESCENDENS:
-    case S_ORISCUS_SCAPUS_ASCENDENS:
-    case S_ORISCUS_SCAPUS_DESCENDENS:
-        next_note = first_note->next;
-        if (!next_note && (next_glyph = gregorio_next_non_texverb_glyph(glyph))
-                && next_glyph->type == GRE_GLYPH
-                && is_fused(next_glyph->u.notes.liquescentia)) {
-            next_note = next_glyph->u.notes.first_note;
+                    && is_initio_debilis(previous->u.notes.liquescentia))) {
+            /* may not be fused from above */
+            return 0;
         }
-        if (next_note) {
-            if (next_note->u.note.pitch < first_note->u.note.pitch) {
-                /* then this note should be an down-up-down oriscus */
-                if (shift > 0) {
-                    /* down-up-down oricus cannot be fused from below */
-                    return 0;
-                }
-            } else {
-                /* then this note should be an up-down-up oriscus */
-                if (shift < 0) {
-                    /* up-down-up oricus cannot be fused from above */
-                    return 0;
-                }
-            }
-        }
-        break;
-
-    default:
-        break;
     }
 
     return shift;

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex-write.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file contains functions for writing GregorioTeX from Gregorio structures.
  *
- * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *
@@ -72,6 +72,22 @@
 #define SHAPE(NAME) static const char *const SHAPE_##NAME = #NAME
 SHAPE(Ancus);
 SHAPE(AncusLongqueue);
+SHAPE(AscendensOriscus);
+SHAPE(AscendensOriscusCavum);
+SHAPE(AscendensOriscusLineBL);
+SHAPE(AscendensOriscusLineTL);
+SHAPE(AscendensOriscusScapus);
+SHAPE(AscendensOriscusScapusLongqueue);
+SHAPE(AscendensOriscusScapusOpenqueue);
+SHAPE(AscendensPunctumInclinatum);
+SHAPE(DescendensOriscus);
+SHAPE(DescendensOriscusCavum);
+SHAPE(DescendensOriscusLineBL);
+SHAPE(DescendensOriscusLineTL);
+SHAPE(DescendensOriscusScapus);
+SHAPE(DescendensOriscusScapusLongqueue);
+SHAPE(DescendensOriscusScapusOpenqueue);
+SHAPE(DescendensPunctumInclinatum);
 SHAPE(Flat);
 SHAPE(Flexus);
 SHAPE(FlexusLongqueue);
@@ -78,7 +94,11 @@
 SHAPE(FlexusNobar);
 SHAPE(FlexusOpenqueue);
 SHAPE(FlexusOriscus);
+SHAPE(FlexusOriscusInusitatus);
 SHAPE(FlexusOriscusScapus);
+SHAPE(FlexusOriscusScapusInusitatus);
+SHAPE(FlexusOriscusScapusInusitatusLongqueue);
+SHAPE(FlexusOriscusScapusInusitatusOpenqueue);
 SHAPE(FlexusOriscusScapusLongqueue);
 SHAPE(FlexusOriscusScapusOpenqueue);
 SHAPE(Linea);
@@ -85,25 +105,16 @@
 SHAPE(LineaPunctum);
 SHAPE(LineaPunctumCavum);
 SHAPE(Natural);
-SHAPE(Oriscus);
-SHAPE(OriscusCavum);
-SHAPE(OriscusCavumAuctus);
 SHAPE(OriscusCavumDeminutus);
 SHAPE(OriscusDeminutus);
-SHAPE(OriscusLineBL);
-SHAPE(OriscusReversus);
-SHAPE(OriscusReversusLineTL);
-SHAPE(OriscusScapus);
-SHAPE(OriscusScapusLongqueue);
-SHAPE(OriscusScapusOpenqueue);
-SHAPE(OriscusScapusReversus);
-SHAPE(OriscusScapusReversusLongqueue);
-SHAPE(OriscusScapusReversusOpenqueue);
 SHAPE(Pes);
 SHAPE(PesQuadratum);
 SHAPE(PesQuadratumLongqueue);
 SHAPE(PesQuadratumOpenqueue);
 SHAPE(PesQuassus);
+SHAPE(PesQuassusInusitatus);
+SHAPE(PesQuassusInusitatusLongqueue);
+SHAPE(PesQuassusInusitatusOpenqueue);
 SHAPE(PesQuassusLongqueue);
 SHAPE(PesQuassusOpenqueue);
 SHAPE(PesQuilisma);
@@ -123,7 +134,6 @@
 SHAPE(PunctumCavumInclinatumAuctus);
 SHAPE(PunctumDeminutus);
 SHAPE(PunctumDescendens);
-SHAPE(PunctumInclinatum);
 SHAPE(PunctumInclinatumAuctus);
 SHAPE(PunctumInclinatumDeminutus);
 SHAPE(PunctumLineBL);
@@ -169,7 +179,9 @@
 
 #define FUSE(NAME) static const char *const FUSE_##NAME = #NAME
 FUSE(Lower);
+FUSE(LowerOblatus);
 FUSE(Upper);
+FUSE(UpperOblatus);
 FUSE(Down);
 FUSE(Up);
 
@@ -312,7 +324,7 @@
     static char buf[BUFSIZE];
 
     const char *liquescentia = gregoriotex_determine_liquescentia(ltype, glyph);
-    gregorio_note *current_note;
+    const gregorio_note *current_note;
     int ambitus1, ambitus2, ambitus3, fuse_ambitus = 0;
     const char *fuse_head = "", *fuse_tail = "";
     const gregorio_glyph *previous = gregorio_previous_non_texverb_glyph(glyph);
@@ -330,33 +342,33 @@
 
     switch (glyph->u.notes.glyph_type) {
     case G_PODATUS:
-        gregorio_assert(is_tail_liquescentia(glyph->u.notes.liquescentia)
-                || fuse_from_previous_note >= 0, compute_glyph_name,
-                "unexpected fusible podatus", break);
-        /* else fall through */
     case G_PUNCTUM:
     case G_FLEXA:
         /* directionally head-fusible */
-        if (fuse_from_previous_note < -1
-                && glyph->u.notes.first_note->u.note.shape != S_QUILISMA
+        if (fuse_from_previous_note < 0) {
+            if (glyph->u.notes.first_note->u.note.shape != S_QUILISMA
                 && glyph->u.notes.first_note->u.note.shape
                 != S_QUILISMA_QUADRATUM) {
-            fuse_head = FUSE_Lower;
-        } else if (fuse_from_previous_note < 0) {
-            gregorio_note *previous_note = gregorio_glyph_last_note(
-                    gregorio_previous_non_texverb_glyph(glyph));
-            switch (previous_note->u.note.shape) {
-            case S_ORISCUS_ASCENDENS:
-            case S_ORISCUS_DESCENDENS:
-            case S_ORISCUS_SCAPUS_ASCENDENS:
-            case S_ORISCUS_SCAPUS_DESCENDENS:
-                fuse_head = FUSE_Lower;
-                break;
-            default:
-                break;
+                if (fuse_from_previous_note < -1) {
+                    fuse_head = FUSE_Lower;
+                } else if (glyph->u.notes.first_note->u.note.shape
+                        == S_ORISCUS_DESCENDENS
+                        || glyph->u.notes.first_note->u.note.shape
+                        == S_ORISCUS_SCAPUS_DESCENDENS) {
+                    /* fuse_from_previous_note will be -1 here */
+                    fuse_head = FUSE_LowerOblatus;
+                }
             }
-        } else if (fuse_from_previous_note > 1) {
-            fuse_head = FUSE_Upper;
+        } else if (fuse_from_previous_note > 0) {
+            if (fuse_from_previous_note > 1) {
+                fuse_head = FUSE_Upper;
+            } else if (glyph->u.notes.first_note->u.note.shape
+                    == S_ORISCUS_ASCENDENS
+                    || glyph->u.notes.first_note->u.note.shape
+                    == S_ORISCUS_SCAPUS_ASCENDENS) {
+                /* fuse_from_previous_note will be 1 here */
+                fuse_head = FUSE_UpperOblatus;
+            }
         }
         break;
 
@@ -393,29 +405,23 @@
         break;
     }
 
-    if ((*fuse_tail && shape == SHAPE_OriscusReversus)
-            || ((shape == SHAPE_OriscusReversus || shape == SHAPE_OriscusScapus
-                    || shape == SHAPE_OriscusScapusLongqueue
-                    || shape == SHAPE_OriscusScapusOpenqueue)
-                && is_fused(glyph->u.notes.liquescentia))) {
-        shape = SHAPE_Oriscus;
-    }
-
-    if (*fuse_tail) {
-        if (is_fused(glyph->u.notes.liquescentia)) {
-            if (shape == SHAPE_OriscusScapusReversus
-                    || shape == SHAPE_OriscusScapusReversusLongqueue
-                    || shape == SHAPE_OriscusScapusReversusOpenqueue) {
-                shape = SHAPE_Oriscus;
-            }
-        } else {
-            if (shape == SHAPE_OriscusScapusReversus) {
-                shape = SHAPE_OriscusScapus;
-            } else if (shape == SHAPE_OriscusScapusReversusLongqueue) {
-                shape = SHAPE_OriscusScapusLongqueue;
-            } else if (shape == SHAPE_OriscusScapusReversusOpenqueue) {
-                shape = SHAPE_OriscusScapusOpenqueue;
-            }
+    if (is_fused(glyph->u.notes.liquescentia)) {
+        if (shape == SHAPE_AscendensOriscusScapus
+                || shape == SHAPE_AscendensOriscusScapusLongqueue
+                || shape == SHAPE_AscendensOriscusScapusOpenqueue) {
+            shape = SHAPE_AscendensOriscus;
+        } else if (shape == SHAPE_DescendensOriscusScapus
+                || shape == SHAPE_DescendensOriscusScapusLongqueue
+                || shape == SHAPE_DescendensOriscusScapusOpenqueue) {
+            shape = SHAPE_DescendensOriscus;
+        } else if (shape == SHAPE_FlexusOriscusScapus
+                || shape == SHAPE_FlexusOriscusScapusLongqueue
+                || shape == SHAPE_FlexusOriscusScapusOpenqueue) {
+            shape = SHAPE_FlexusOriscus;
+        } else if (shape == SHAPE_FlexusOriscusScapusInusitatus
+                || shape == SHAPE_FlexusOriscusScapusInusitatusLongqueue
+                || shape == SHAPE_FlexusOriscusScapusInusitatusOpenqueue) {
+            shape = SHAPE_FlexusOriscusInusitatus;
         }
     }
 
@@ -424,19 +430,24 @@
         if (liquescentia == LIQ_Nothing) {
             liquescentia = "";
         }
-        if (!(*fuse_tail)) {
+        if (!(*fuse_tail) && fuse_head != FUSE_UpperOblatus
+                && fuse_head != FUSE_LowerOblatus) {
             /* single note fused shapes have weird names */
             if (fuse_head == FUSE_Upper) {
                 if (shape == SHAPE_Punctum) {
                     shape = SHAPE_PunctumLineBL;
-                } else if (shape == SHAPE_Oriscus) {
-                    shape = SHAPE_OriscusLineBL;
+                } else if (shape == SHAPE_AscendensOriscus) {
+                    shape = SHAPE_AscendensOriscusLineBL;
+                } else if (shape == SHAPE_DescendensOriscus) {
+                    shape = SHAPE_DescendensOriscusLineBL;
                 }
             } else if (fuse_head == FUSE_Lower) {
                 if (shape == SHAPE_Punctum) {
                     shape = SHAPE_PunctumLineTL;
-                } else if (shape == SHAPE_Oriscus) {
-                    shape = SHAPE_OriscusReversusLineTL;
+                } else if (shape == SHAPE_AscendensOriscus) {
+                    shape = SHAPE_AscendensOriscusLineTL;
+                } else if (shape == SHAPE_DescendensOriscus) {
+                    shape = SHAPE_DescendensOriscusLineTL;
                 }
             }
             fuse_head = "";
@@ -567,20 +578,23 @@
     return compute_glyph_name(glyph, name, LG_NONE, true);
 }
 
-static const char *gregoriotex_determine_note_glyph_name(gregorio_note *note,
-        gregorio_glyph *glyph, gtex_alignment *type)
+static const char *determine_note_glyph_name(const gregorio_note *const note,
+        const gregorio_glyph *glyph, gtex_alignment *type)
 {
     static char buf[128];
     const char *name = "";
 
-    gregorio_assert(note, gregoriotex_determine_note_glyph_name,
-            "called with NULL pointer", return "");
+    gregorio_assert(note, determine_note_glyph_name, "called with NULL pointer",
+            return "");
 
     *type = AT_ONE_NOTE;
     switch (note->u.note.shape) {
-    case S_PUNCTUM_INCLINATUM:
+    case S_PUNCTUM_INCLINATUM_ASCENDENS:
         *type = AT_PUNCTUM_INCLINATUM;
-        return SHAPE_PunctumInclinatum;
+        return SHAPE_AscendensPunctumInclinatum;
+    case S_PUNCTUM_INCLINATUM_DESCENDENS:
+        *type = AT_PUNCTUM_INCLINATUM;
+        return SHAPE_DescendensPunctumInclinatum;
     case S_PUNCTUM_INCLINATUM_DEMINUTUS:
         return SHAPE_PunctumInclinatumDeminutus;
     case S_PUNCTUM_INCLINATUM_AUCTUS:
@@ -649,10 +663,10 @@
         }
     case S_ORISCUS_ASCENDENS:
         *type = AT_ORISCUS;
-        return compute_glyph_name(glyph, SHAPE_Oriscus, LG_NONE, true);
+        return compute_glyph_name(glyph, SHAPE_AscendensOriscus, LG_NONE, true);
     case S_ORISCUS_DESCENDENS:
         *type = AT_ORISCUS;
-        return compute_glyph_name(glyph, SHAPE_OriscusReversus, LG_NONE, true);
+        return compute_glyph_name(glyph, SHAPE_DescendensOriscus, LG_NONE, true);
     case S_ORISCUS_DEMINUTUS:
         *type = AT_ORISCUS;
         return SHAPE_OriscusDeminutus;
@@ -660,12 +674,13 @@
         *type = AT_QUILISMA;
         return compute_glyph_name(glyph, SHAPE_Quilisma, LG_NONE, true);
     case S_ORISCUS_SCAPUS_ASCENDENS:
-        return fusible_queued_shape(note, glyph, SHAPE_OriscusScapus,
-                SHAPE_OriscusScapusLongqueue, SHAPE_OriscusScapusOpenqueue);
+        return fusible_queued_shape(note, glyph, SHAPE_AscendensOriscusScapus,
+                SHAPE_AscendensOriscusScapusLongqueue,
+                SHAPE_AscendensOriscusScapusOpenqueue);
     case S_ORISCUS_SCAPUS_DESCENDENS:
-        return fusible_queued_shape(note, glyph, SHAPE_OriscusScapusReversus,
-                SHAPE_OriscusScapusReversusLongqueue,
-                SHAPE_OriscusScapusReversusOpenqueue);
+        return fusible_queued_shape(note, glyph, SHAPE_DescendensOriscusScapus,
+                SHAPE_DescendensOriscusScapusLongqueue,
+                SHAPE_DescendensOriscusScapusOpenqueue);
     case S_STROPHA:
         *type = AT_STROPHA;
         if (!(note->u.note.liquescentia &
@@ -691,10 +706,10 @@
         return SHAPE_PunctumCavumInclinatumAuctus;
     case S_ORISCUS_CAVUM_ASCENDENS:
         *type = AT_ORISCUS;
-        return SHAPE_OriscusCavum;
+        return SHAPE_AscendensOriscusCavum;
     case S_ORISCUS_CAVUM_DESCENDENS:
         *type = AT_ORISCUS;
-        return SHAPE_OriscusCavumAuctus;
+        return SHAPE_DescendensOriscusCavum;
     case S_ORISCUS_CAVUM_DEMINUTUS:
         *type = AT_ORISCUS;
         return SHAPE_OriscusCavumDeminutus;
@@ -707,7 +722,7 @@
     default:
         /* not reachable unless there's a programming error */
         /* LCOV_EXCL_START */
-        gregorio_fail2(gregoriotex_determine_note_glyph_name,
+        gregorio_fail2(determine_note_glyph_name,
                 "called with unknown shape: %s",
                 gregorio_shape_to_string(note->u.note.shape));
         return "";
@@ -853,7 +868,7 @@
     const char *shape = NULL;
     gtex_glyph_liquescentia ltype;
     signed char ambitus;
-    gregorio_note *second_note;
+    const gregorio_note *second_note;
     gregorio_assert(glyph, gregoriotex_determine_glyph_name,
             "called with NULL pointer", return "");
     gregorio_assert(glyph->u.notes.first_note, gregoriotex_determine_glyph_name,
@@ -877,9 +892,7 @@
             ltype = LG_NO_INITIO;
             break;
         case S_ORISCUS_ASCENDENS:
-        case S_ORISCUS_DESCENDENS:
         case S_ORISCUS_SCAPUS_ASCENDENS:
-        case S_ORISCUS_SCAPUS_DESCENDENS:
             *type = AT_ORISCUS;
             *gtype = T_PESQUASSUS;
             shape = quadratum_shape(glyph, SHAPE_PesQuassus,
@@ -886,6 +899,15 @@
                     SHAPE_PesQuassusLongqueue, SHAPE_PesQuassusOpenqueue);
             ltype = LG_NO_INITIO;
             break;
+        case S_ORISCUS_DESCENDENS:
+        case S_ORISCUS_SCAPUS_DESCENDENS:
+            *type = AT_ORISCUS;
+            *gtype = T_PESQUASSUS;
+            shape = quadratum_shape(glyph, SHAPE_PesQuassusInusitatus,
+                    SHAPE_PesQuassusInusitatusLongqueue,
+                    SHAPE_PesQuassusInusitatusOpenqueue);
+            ltype = LG_NO_INITIO;
+            break;
         default:
             *type = AT_ONE_NOTE;
             if (glyph->u.notes.liquescentia
@@ -938,6 +960,11 @@
         }
         switch (glyph->u.notes.first_note->u.note.shape) {
         case S_ORISCUS_ASCENDENS:
+            *gtype = T_FLEXUS_ORISCUS;
+            shape = SHAPE_FlexusOriscusInusitatus;
+            ltype = LG_NO_INITIO;
+            break;
+
         case S_ORISCUS_DESCENDENS:
             *gtype = T_FLEXUS_ORISCUS;
             shape = SHAPE_FlexusOriscus;
@@ -945,6 +972,14 @@
             break;
 
         case S_ORISCUS_SCAPUS_ASCENDENS:
+            *gtype = T_FLEXUS_ORISCUS_SCAPUS;
+            shape = flexus_shape(glyph, ambitus,
+                    SHAPE_FlexusOriscusScapusInusitatus,
+                    SHAPE_FlexusOriscusScapusInusitatusLongqueue,
+                    SHAPE_FlexusOriscusScapusInusitatusOpenqueue);
+            ltype = LG_NO_INITIO;
+            break;
+
         case S_ORISCUS_SCAPUS_DESCENDENS:
             *gtype = T_FLEXUS_ORISCUS_SCAPUS;
             shape = flexus_shape(glyph, ambitus, SHAPE_FlexusOriscusScapus,
@@ -1146,43 +1181,6 @@
     return false;
 }
 
-static __inline bool has_notes(const gregorio_element *const element)
-{
-    if (element->type == GRE_CUSTOS) {
-        return true;
-    }
-    if (element->type == GRE_ELEMENT) {
-        const gregorio_glyph *glyph;
-        for (glyph = element->u.first_glyph; glyph; glyph = glyph->next) {
-            if (glyph->type == GRE_GLYPH) {
-                return true;
-            }
-        }
-    }
-    return false;
-}
-
-/* determines if there are more GRE_GLYPHs */
-static __inline bool has_more_notes(const gregorio_element *element)
-{
-    for (element = element->next; element; element = element->next) {
-        if (has_notes(element)) {
-            return true;
-        }
-    }
-    return false;
-}
-
-static __inline void handle_last_of_score(FILE *const f,
-        const gregorio_syllable *const syllable,
-        const gregorio_element *const element)
-{
-    if (!syllable->next_syllable && !has_more_notes(element)
-            && has_notes(element)) {
-        fprintf(f, "\\GreLastOfScore");
-    }
-}
-
 /*
  * ! @brief Prints the beginning of each text style
  */
@@ -1599,13 +1597,25 @@
     return pitch_value(LOWEST_PITCH + offset);
 }
 
+static __inline bool is_manual_custos(const gregorio_element *const element)
+{
+    return element->type == GRE_CUSTOS && element->u.misc.pitched.force_pitch;
+}
+
 OFFSET_CASE(BarStandard);
 OFFSET_CASE(BarVirgula);
 OFFSET_CASE(BarDivisioFinalis);
 
-static void write_bar(FILE *f, gregorio_bar type,
-        gregorio_sign signs, bool is_inside_bar, bool has_text, unsigned char first_of_disc)
+static void write_bar(FILE *f, const gregorio_score *const score,
+        const gregorio_syllable *const syllable,
+        const gregorio_element *const element,
+        const unsigned char first_of_disc)
 {
+    const gregorio_bar type = element->u.misc.unpitched.info.bar;
+    const gregorio_sign signs = element->u.misc.unpitched.special_sign;
+    const bool is_inside_bar = element->next && !is_manual_custos(element->next)
+            && element->next->type != GRE_END_OF_LINE;
+    const bool has_text = !element->previous && syllable->text;
     /* the type number of function vepisemaorrare */
     const char *offset_case = BarStandard;
     /* don't use "In" version of bars in the first argument of a GreDiscretionary */
@@ -1666,20 +1676,98 @@
     fprintf(f, "{%c}", has_text? '1' : '0');
     switch (signs) {
     case _V_EPISEMA:
-        fprintf(f, "{\\GreBarVEpisema{\\GreOCase%s}}%%\n", offset_case);
+        fprintf(f, "{\\GreBarVEpisema{\\GreOCase%s}}", offset_case);
         break;
     case _BAR_H_EPISEMA:
-        fprintf(f, "{\\GreBarBrace{\\GreOCase%s}}%%\n", offset_case);
+        fprintf(f, "{\\GreBarBrace{\\GreOCase%s}}", offset_case);
         break;
     case _V_EPISEMA_BAR_H_EPISEMA:
         fprintf(f, "{\\GreBarBrace{\\GreOCase%s}"
-                "\\GreBarVEpisema{\\GreOCase%s}}%%\n",
+                "\\GreBarVEpisema{\\GreOCase%s}}",
                 offset_case, offset_case);
         break;
     default:
-        fprintf(f, "{}%%\n");
+        fprintf(f, "{}");
         break;
     }
+    if (type == B_VIRGULA || type == B_DIVISIO_MINIMA) {
+        char result = '0';
+        const gregorio_element *e;
+        const gregorio_syllable *s;
+        const gregorio_glyph *g;
+        const gregorio_note *n;
+        signed char pitch;
+        /* find the prior element */
+        e = element->previous;
+        if (!e) {
+            for (s = syllable->previous_syllable; s; s = s->previous_syllable) {
+                /* loop to find the previous syllable with elements */
+                if (s->elements && *s->elements) {
+                    for (e = *s->elements; e->next; e = e->next) {
+                        /* just loop to find the last element */
+                    }
+                    break;
+                }
+            }
+        }
+        if (e && e->type == GRE_ELEMENT) {
+            g = e->u.first_glyph;
+            if (g) {
+                while (g->next) {
+                    /* loop to find the last glyph in the prior element */
+                    g = g->next;
+                }
+            }
+            if (g && g->type == GRE_GLYPH && (n = g->u.notes.first_note)) {
+                while (n->next) {
+                    /* loop to find the last note */
+                    n = n->next;
+                }
+                pitch = n->u.note.pitch;
+                if (g->u.notes.liquescentia & L_DEMINUTUS && n->previous
+                        && n->previous->u.note.pitch > pitch) {
+                    pitch = n->previous->u.note.pitch;
+                }
+                if (pitch < score->virgula_far_pitch) {
+                    /* find next element */
+                    e = element->next;
+                    if (!e) {
+                        for (s = syllable->next_syllable; s;
+                                s = s->next_syllable) {
+                            /* loop to find the next syllable with elements */
+                            if (s->elements && *s->elements) {
+                                e = *s->elements;
+                                break;
+                            }
+                        }
+                    }
+                    if (e) {
+                        if (e->type == GRE_END_OF_LINE) {
+                            result = '1';
+                        } else if (e->type == GRE_ELEMENT) {
+                            g = e->u.first_glyph;
+                            if (g && g->type == GRE_GLYPH) {
+                                n = g->u.notes.first_note;
+                                if (n) {
+                                    if (g->u.notes.glyph_type == G_PODATUS
+                                            && n->next) {
+                                        n = n->next;
+                                    }
+                                    if (n->u.note.pitch
+                                            < score->virgula_far_pitch) {
+                                        result = '1';
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        fprintf(f, "{%c}%%\n", result);
+    } else {
+        fprintf(f, "%%\n");
+    }
 }
 
 static __inline char *suppose_high_ledger_line(const gregorio_note *const note)
@@ -1700,8 +1788,8 @@
  * glyph, which would be weird but sure why not, we just typeset two puncta
  * spaced of 2.
  */
-static void gregoriotex_write_auctum_duplex(FILE *f,
-        gregorio_note *current_note)
+static void write_auctum_duplex(FILE *f,
+        const gregorio_note *const current_note)
 {
     char pitch = current_note->u.note.pitch;
     char previous_pitch = 0;
@@ -1748,8 +1836,8 @@
  * Writes \c \\GrePunctumMora in the gtex file, with the appropriate arguments. You might think this function
  * more straightforward than it actually is...
  */
-static void gregoriotex_write_punctum_mora(FILE *f, gregorio_glyph *glyph,
-        gregorio_note *current_note, int fuse_to_next_note)
+static void write_punctum_mora(FILE *f, const gregorio_glyph *glyph,
+        const gregorio_note *current_note, const int fuse_to_next_note)
 {
     /* in this if we consider that the puncta are only on the last two notes
      * (maybe it would be useful to consider it more entirely, but it would be
@@ -1767,7 +1855,7 @@
     /* a variable to know if we are on a punctum inclinatum or not */
     unsigned char punctum_inclinatum = 0;
     /* a temp variable */
-    gregorio_note *tmpnote;
+    const gregorio_note *tmpnote;
     /* we go into this switch only if it is the note before the last note */
     if (current_note->next) {
         switch (glyph->u.notes.glyph_type) {
@@ -1847,7 +1935,8 @@
         break;
     }
     switch (current_note->u.note.shape) {
-    case S_PUNCTUM_INCLINATUM:
+    case S_PUNCTUM_INCLINATUM_ASCENDENS:
+    case S_PUNCTUM_INCLINATUM_DESCENDENS:
     case S_PUNCTUM_INCLINATUM_DEMINUTUS:
         punctum_inclinatum = 1;
         break;
@@ -1935,7 +2024,31 @@
     char temp;
 
     switch (note->u.note.shape) {
-    case S_PUNCTUM_INCLINATUM:
+    case S_PUNCTUM_INCLINATUM_ASCENDENS:
+        if (note->previous) {
+            /* means that it is the first note of the puncta inclinata
+             * sequence */
+            temp = note->previous->u.note.pitch - note->u.note.pitch;
+            /* negative values = ascending ambitus */
+            /* not sure we ever need to consider a larger ambitus here */
+            switch (temp) {
+            case 1:
+            case 2:
+            case 3:
+            case 4:
+                return 25;
+            case -1:
+            default:
+                return 12;
+            case -2:
+                return 14;
+            case -3:
+            case -4:
+                return 15;
+            }
+        }
+        break;
+    case S_PUNCTUM_INCLINATUM_DESCENDENS:
     case S_PUNCTUM_CAVUM_INCLINATUM:
         if (note->previous) {
             /* means that it is the first note of the puncta inclinata
@@ -1953,12 +2066,10 @@
             case 4:
                 return 11;
             case -1:
-                return 12;
             case -2:
-                return 14;
             case -3:
             case -4:
-                return 15;
+                return 24;
             }
         }
         break;
@@ -2033,7 +2144,7 @@
                     || (next->u.notes.glyph_type == G_FLEXA
                         && !next->u.notes.fuse_to_next_glyph))) {
             int descent;
-            gregorio_note *note = gregorio_glyph_last_note(glyph);
+            const gregorio_note *note = gregorio_glyph_last_note(glyph);
             descent = note->u.note.pitch -
                 glyph->next->u.notes.first_note->u.note.pitch;
             /* a negative descent is an ascent */
@@ -2114,8 +2225,11 @@
                             suppose_low_ledger_line(note),
                             adj->nudge? adj->nudge : "", adj->vbasepos);
                 } else if (note->next
-                        && (note->next->u.note.shape == S_PUNCTUM_INCLINATUM
+                        && (note->next->u.note.shape
+                            == S_PUNCTUM_INCLINATUM_ASCENDENS
                             || note->next->u.note.shape
+                            == S_PUNCTUM_INCLINATUM_DESCENDENS
+                            || note->next->u.note.shape
                             == S_PUNCTUM_INCLINATUM_DEMINUTUS
                             || note->next->u.note.shape
                             == S_PUNCTUM_INCLINATUM_AUCTUS)) {
@@ -2176,7 +2290,7 @@
 /* a macro to write an additional line */
 
 static void write_additional_line(FILE *f, int i, gtex_type type, bool bottom,
-        gregorio_note *current_note, const gregorio_score *const score)
+        const gregorio_note *current_note, const gregorio_score *const score)
 {
     char ambitus = 0;
     gregorio_assert(current_note, write_additional_line, "called with no note",
@@ -2260,7 +2374,7 @@
  *
  */
 
-static void gregoriotex_write_vepisema(FILE *f, gregorio_note *note)
+static void write_vepisema(FILE *f, const gregorio_note *const note)
 {
     fprintf(f, "\\GreVEpisema{%d}{\\GreOCase%s}%%\n",
             pitch_value(note->v_episema_height), note->gtex_offset_case);
@@ -2270,8 +2384,8 @@
  * a function that writes the rare signs in GregorioTeX. i is the position of
  * the note in the glyph */
 
-static void gregoriotex_write_rare(FILE *f, gregorio_note *current_note,
-        gregorio_sign rare)
+static void write_rare_sign(FILE *f, const gregorio_note *const current_note,
+        const gregorio_sign rare)
 {
     switch (rare) {
     case _ACCENTUS:
@@ -2310,12 +2424,40 @@
     }
 }
 
+static __inline const char *alteration_name(
+        const gregorio_shape next_note_alteration)
+{
+    switch (next_note_alteration) {
+    case S_FLAT:
+        return "Flat";
+    case S_SHARP:
+        return "Sharp";
+    case S_NATURAL:
+        return "Natural";
+    default:
+        return "";
+    }
+}
+
+static const char *next_custos(const signed char next_note_pitch,
+        const gregorio_shape next_note_alteration)
+{
+    static char buf[30];
+
+    gregorio_snprintf(buf, sizeof buf, "\\GreNextCustos{%d}{%s}",
+            pitch_value(next_note_pitch),
+            alteration_name(next_note_alteration));
+
+    return buf;
+}
+
 /*
  * function used when the glyph is only one note long
  */
 
-static void gregoriotex_write_note(FILE *f, gregorio_note *note,
-        gregorio_glyph *glyph, char next_note_pitch)
+static void write_note(FILE *f, gregorio_note *note,
+        const gregorio_glyph *glyph, const char next_note_pitch,
+        const gregorio_shape next_note_alteration)
 {
     unsigned int initial_shape = note->u.note.shape;
     const char *shape;
@@ -2322,7 +2464,7 @@
     int space_case;
     /* type in the sense of GregorioTeX alignment type */
     gtex_alignment type = AT_ONE_NOTE;
-    gregorio_assert(note, gregoriotex_write_note, "called with NULL pointer",
+    gregorio_assert(note, write_note, "called with NULL pointer",
             return);
     if (note->u.note.shape == S_PUNCTUM) {
         switch (note->u.note.liquescentia) {
@@ -2347,7 +2489,7 @@
             break;
         }
     }
-    shape = gregoriotex_determine_note_glyph_name(note, glyph, &type);
+    shape = determine_note_glyph_name(note, glyph, &type);
     note->u.note.shape = initial_shape;
     /* special things for puncta inclinata */
     space_case = get_punctum_inclinatum_space_case(note);
@@ -2357,43 +2499,43 @@
 
     switch (note->u.note.shape) {
     case S_PUNCTUM_CAVUM:
-        fprintf(f, "\\GrePunctumCavum{%d}{%d}{%d}",
-                pitch_value(note->u.note.pitch), pitch_value(next_note_pitch),
-                type);
+        fprintf(f, "\\GrePunctumCavum{%d}{%s}{%d}",
+                pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     case S_PUNCTUM_CAVUM_INCLINATUM:
-        fprintf(f, "\\GrePunctumCavumInclinatum{%d}{%d}{%d}",
-                pitch_value(note->u.note.pitch), pitch_value(next_note_pitch),
-                type);
+        fprintf(f, "\\GrePunctumCavumInclinatum{%d}{%s}{%d}",
+                pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     case S_PUNCTUM_CAVUM_INCLINATUM_AUCTUS:
-        fprintf(f, "\\GrePunctumCavumInclinatumAuctus{%d}{%d}{%d}",
-                pitch_value(note->u.note.pitch), pitch_value(next_note_pitch),
-                type);
+        fprintf(f, "\\GrePunctumCavumInclinatumAuctus{%d}{%s}{%d}",
+                pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     case S_ORISCUS_CAVUM_ASCENDENS:
-        fprintf(f, "\\GreOriscusCavum{%d}{%d}{%d}",
-                pitch_value(note->u.note.pitch), pitch_value(next_note_pitch),
-                type);
+        fprintf(f, "\\GreAscendensOriscusCavum{%d}{%s}{%d}",
+                pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     case S_ORISCUS_CAVUM_DESCENDENS:
-        fprintf(f, "\\GreOriscusCavumAuctus{%d}{%d}{%d}",
-                pitch_value(note->u.note.pitch), pitch_value(next_note_pitch),
-                type);
+        fprintf(f, "\\GreDescendensOriscusCavum{%d}{%s}{%d}",
+                pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     case S_ORISCUS_CAVUM_DEMINUTUS:
-        fprintf(f, "\\GreOriscusCavumDeminutus{%d}{%d}{%d}",
-                pitch_value(note->u.note.pitch), pitch_value(next_note_pitch),
-                type);
+        fprintf(f, "\\GreOriscusCavumDeminutus{%d}{%s}{%d}",
+                pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     case S_LINEA_PUNCTUM_CAVUM:
-        fprintf(f, "\\GreLineaPunctumCavum{%d}{%d}{%d}",
-                pitch_value(note->u.note.pitch), pitch_value(next_note_pitch),
-                type);
+        fprintf(f, "\\GreLineaPunctumCavum{%d}{%s}{%d}",
+                pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     case S_LINEA:
-        fprintf(f, "\\GreLinea{%d}{%d}{%d}", pitch_value(note->u.note.pitch),
-                pitch_value(next_note_pitch), type);
+        fprintf(f, "\\GreLinea{%d}{%s}{%d}", pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     case S_FLAT:
         fprintf(f, "\\GreFlat{%d}{0}", pitch_value(note->u.note.pitch));
@@ -2405,9 +2547,9 @@
         fprintf(f, "\\GreSharp{%d}{0}", pitch_value(note->u.note.pitch));
         break;
     default:
-        fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%d}{%d}", shape,
-                pitch_value(note->u.note.pitch), pitch_value(next_note_pitch),
-                type);
+        fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%s}{%d}", shape,
+                pitch_value(note->u.note.pitch),
+                next_custos(next_note_pitch, next_note_alteration), type);
         break;
     }
 }
@@ -2510,7 +2652,7 @@
                     case G_TRISTROPHA_AUCTA:
                     case G_BIVIRGA:
                     case G_TRIVIRGA:
-                        gregoriotex_determine_note_glyph_name
+                        determine_note_glyph_name
                                 (glyph->u.notes.first_note, glyph, &type);
                         break;
                     default:
@@ -2561,8 +2703,8 @@
     }
 }
 
-static void gregoriotex_write_choral_sign(FILE *f, gregorio_glyph *glyph,
-        gregorio_note *current_note, bool low)
+static void write_choral_sign(FILE *f, const gregorio_glyph *glyph,
+        const gregorio_note *current_note, bool low)
 {
     bool kind_of_pes;
     /* false in the normal case (sign above the note), true in the case of it's
@@ -2676,14 +2818,14 @@
     }
 }
 
-static void gregoriotex_write_signs(FILE *f, gtex_type type,
-        gregorio_glyph *glyph, gregorio_note *note,
+static void write_signs(FILE *f, gtex_type type,
+        const gregorio_glyph *glyph, const gregorio_note *note,
         int fuse_to_next_note, gregoriotex_status *const status,
         const gregorio_score *const score)
 {
     /* i is the number of the note for which we are typesetting the sign. */
     int i;
-    gregorio_note *current_note;
+    const gregorio_note *current_note;
     signed char high_pitch = UNDETERMINED_HEIGHT;
     signed char low_pitch = UNDETERMINED_HEIGHT;
     bool found = false;
@@ -2716,7 +2858,7 @@
             current_note = current_note->next, ++i) {
         if (current_note->choral_sign) {
             found = _found(f, found);
-            gregoriotex_write_choral_sign(f, glyph, current_note, false);
+            write_choral_sign(f, glyph, current_note, false);
         }
         if (type == T_ONE_NOTE) {
             break;
@@ -2730,10 +2872,10 @@
             found = _found(f, found);
             gregoriotex_write_hepisema(f, current_note, i, type, glyph);
         }
-        /* write_rare also writes the vepisema */
+        /* write_rare_sign also writes the vepisema */
         if (current_note->special_sign) {
             found = _found(f, found);
-            gregoriotex_write_rare(f, current_note, current_note->special_sign);
+            write_rare_sign(f, current_note, current_note->special_sign);
         }
         if (current_note->signs != _NO_SIGN) {
             found = _found(f, found);
@@ -2742,7 +2884,7 @@
         case _V_EPISEMA:
         case _V_EPISEMA_PUNCTUM_MORA:
         case _V_EPISEMA_AUCTUM_DUPLEX:
-            gregoriotex_write_vepisema(f, current_note);
+            write_vepisema(f, current_note);
             break;
         default:
             /* do nothing */
@@ -2758,12 +2900,11 @@
         switch (current_note->signs) {
         case _PUNCTUM_MORA:
         case _V_EPISEMA_PUNCTUM_MORA:
-            gregoriotex_write_punctum_mora(f, glyph, current_note,
-                    fuse_to_next_note);
+            write_punctum_mora(f, glyph, current_note, fuse_to_next_note);
             break;
         case _AUCTUM_DUPLEX:
         case _V_EPISEMA_AUCTUM_DUPLEX:
-            gregoriotex_write_auctum_duplex(f, current_note);
+            write_auctum_duplex(f, current_note);
             break;
         default:
             break;
@@ -2770,7 +2911,7 @@
         }
         if (current_note->choral_sign) {
             found = _found(f, found);
-            gregoriotex_write_choral_sign(f, glyph, current_note, true);
+            write_choral_sign(f, glyph, current_note, true);
         }
         if (type == T_ONE_NOTE) {
             break;
@@ -2814,6 +2955,31 @@
     return buf;
 }
 
+static __inline void write_composed_multinote_glyph(FILE *const f,
+        gregorio_note *current_note, const gregorio_glyph *glyph,
+        const signed char next_note_pitch,
+        const gregorio_shape next_note_alteration,
+        const int fuse_to_next_note, gregoriotex_status *const status,
+        const gregorio_score *const score, const char *glyph_end_between_notes)
+{
+    while (current_note) {
+        const bool has_next = current_note->next != NULL;
+        if (has_next) {
+            write_note(f, current_note, glyph, current_note->next->u.note.pitch,
+                    S_UNDETERMINED);
+        } else {
+            write_note(f, current_note, glyph, next_note_pitch,
+                    next_note_alteration);
+        }
+        write_signs(f, T_ONE_NOTE, glyph, current_note,
+                has_next ? 0 : fuse_to_next_note, status, score);
+        current_note = current_note->next;
+        if (current_note && glyph_end_between_notes) {
+            fputs(glyph_end_between_notes, f);
+        }
+    }
+}
+
 static void write_glyph(FILE *f, gregorio_syllable *syllable,
         gregorio_element *element, gregorio_glyph *glyph,
         gregoriotex_status *const status, const gregorio_score *const score)
@@ -2834,6 +3000,7 @@
     int fuse_to_next_note, fuse_from_previous_note =
             (prev_glyph && prev_glyph->type == GRE_GLYPH)
             ? prev_glyph->u.notes.fuse_to_next_glyph : 0;
+    gregorio_shape next_note_alteration;
     gregorio_assert(glyph, write_glyph, "called with NULL pointer", return);
     gregorio_assert(glyph->type == GRE_GLYPH && glyph->u.notes.first_note,
             write_glyph, "called with glyph without note", return);
@@ -2841,7 +3008,8 @@
     if (fuse_from_previous_note) {
         fprintf(f, "\\GreFuse");
     }
-    next_note_pitch = gregorio_determine_next_pitch(syllable, element, glyph);
+    next_note_pitch = gregorio_determine_next_pitch(syllable, element, glyph,
+            &next_note_alteration);
     current_note = glyph->u.notes.first_note;
     /* first we check if it is really a unique glyph in gregoriotex... the
      * glyphs that are not a unique glyph are : trigonus and pucta inclinata
@@ -2857,13 +3025,9 @@
     case G_3_PUNCTA_INCLINATA_ASCENDENS:
     case G_4_PUNCTA_INCLINATA_ASCENDENS:
     case G_5_PUNCTA_INCLINATA_ASCENDENS:
-        while (current_note) {
-            gregoriotex_write_note(f, current_note, glyph, next_note_pitch);
-            gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note,
-                    current_note->next ? 0 : fuse_to_next_note, status, score);
-            current_note = current_note->next;
-        }
-        /* TODO: handle fusion to next note */
+        write_composed_multinote_glyph(f, current_note, glyph,
+                next_note_pitch, next_note_alteration, fuse_to_next_note,
+                status, score, NULL);
         break;
     case G_SCANDICUS:
         if ((glyph->u.notes.liquescentia & L_DEMINUTUS)
@@ -2870,25 +3034,15 @@
                 || glyph->u.notes.liquescentia == L_NO_LIQUESCENTIA
                 || glyph->u.notes.liquescentia == L_FUSED) {
             shape = gregoriotex_determine_glyph_name(glyph, &type, &gtype);
-            fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%d}{%d}", shape,
+            fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%s}{%d}", shape,
                     pitch_value(glyph->u.notes.first_note->u.note.pitch),
-                    pitch_value(next_note_pitch), type);
-            gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note,
+                    next_custos(next_note_pitch, next_note_alteration), type);
+            write_signs(f, gtype, glyph, glyph->u.notes.first_note,
                     fuse_to_next_note, status, score);
         } else {
-            while (current_note) {
-                if (current_note->next) {
-                    gregoriotex_write_note(f, current_note, glyph,
-                            current_note->next->u.note.pitch);
-                } else {
-                    gregoriotex_write_note(f, current_note, glyph,
-                            next_note_pitch);
-                }
-                gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note,
-                        current_note->next ? 0 : fuse_to_next_note, status,
-                        score);
-                current_note = current_note->next;
-            }
+            write_composed_multinote_glyph(f, current_note, glyph,
+                    next_note_pitch, next_note_alteration, fuse_to_next_note,
+                    status, score, NULL);
         }
         break;
     case G_ANCUS:
@@ -2895,10 +3049,10 @@
         gregorio_assert(glyph->u.notes.liquescentia & L_DEMINUTUS,
                 write_glyph, "encountered a non-deminutus ancus", break);
         shape = gregoriotex_determine_glyph_name(glyph, &type, &gtype);
-        fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%d}{%d}", shape,
+        fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%s}{%d}", shape,
                 pitch_value(glyph->u.notes.first_note->u.note.pitch),
-                pitch_value(next_note_pitch), type);
-        gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note,
+                next_custos(next_note_pitch, next_note_alteration), type);
+        write_signs(f, gtype, glyph, glyph->u.notes.first_note,
                 fuse_to_next_note, status, score);
         break;
     case G_TORCULUS_RESUPINUS_FLEXUS:
@@ -2909,40 +3063,28 @@
         glyph->u.notes.glyph_type = G_PORRECTUS_FLEXUS_NO_BAR;
         glyph->u.notes.first_note = current_note->next;
         shape = gregoriotex_determine_glyph_name(glyph, &type, &gtype);
-        fprintf(f, "\\GreGlyph{\\GreFuseTwo{\\GreCP%s}{\\GreCP%s}}{%d}{%d}{%d}",
-                leading_shape, shape,
+        fprintf(f, "\\GreGlyph{\\GreFuseTwo{\\GreCP%s}{\\GreCP%s}}{%d}"
+                "{%s}{%d}", leading_shape, shape,
                 pitch_value(glyph->u.notes.first_note->u.note.pitch),
-                pitch_value(next_note_pitch), type);
+                next_custos(next_note_pitch, next_note_alteration), type);
         glyph->u.notes.first_note = current_note;
         glyph->u.notes.glyph_type = G_TORCULUS_RESUPINUS_FLEXUS;
-        gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note,
+        write_signs(f, gtype, glyph, glyph->u.notes.first_note,
                 fuse_to_next_note, status, score);
         break;
     case G_BIVIRGA:
     case G_TRIVIRGA:
-        while (current_note) {
-            gregoriotex_write_note(f, current_note, glyph, next_note_pitch);
-            gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note,
-                    current_note->next ? 0 : fuse_to_next_note, status, score);
-            current_note = current_note->next;
-            if (current_note) {
-                fprintf(f, "\\GreEndOfGlyph{4}%%\n");
-            }
-        }
+        write_composed_multinote_glyph(f, current_note, glyph,
+                next_note_pitch, next_note_alteration, fuse_to_next_note,
+                status, score, "\\GreEndOfGlyph{4}%%\n");
         break;
     case G_TRISTROPHA:
     case G_TRISTROPHA_AUCTA:
     case G_DISTROPHA:
     case G_DISTROPHA_AUCTA:
-        while (current_note) {
-            gregoriotex_write_note(f, current_note, glyph, next_note_pitch);
-            gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note,
-                    current_note->next ? 0 : fuse_to_next_note, status, score);
-            current_note = current_note->next;
-            if (current_note) {
-                fprintf(f, "\\GreEndOfGlyph{5}%%\n");
-            }
-        }
+        write_composed_multinote_glyph(f, current_note, glyph,
+                next_note_pitch, next_note_alteration, fuse_to_next_note,
+                status, score, "\\GreEndOfGlyph{5}%%\n");
         break;
 
     case G_PUNCTUM:
@@ -2988,10 +3130,10 @@
     case G_STROPHA:
     case G_STROPHA_AUCTA:
     case G_ALTERATION:
-        gregoriotex_write_note(f, glyph->u.notes.first_note, glyph,
-                next_note_pitch);
-        gregoriotex_write_signs(f, T_ONE_NOTE, glyph, current_note,
-                fuse_to_next_note, status, score);
+        write_note(f, glyph->u.notes.first_note, glyph, next_note_pitch,
+                next_note_alteration);
+        write_signs(f, T_ONE_NOTE, glyph, current_note, fuse_to_next_note,
+                status, score);
         break;
     default:
         /* we retain this "old-style" fusion as it does look marginally better
@@ -3007,20 +3149,20 @@
             glyph->u.notes.first_note = current_note->next;
             shape = gregoriotex_determine_glyph_name(glyph, &type, &gtype);
             fprintf(f, "\\GreGlyph{\\GreFuseTwo{\\GreCP%s}{\\GreCP%s}}"
-                    "{%d}{%d}{%d}", leading_shape, shape,
+                    "{%d}{%s}{%d}", leading_shape, shape,
                     pitch_value(glyph->u.notes.first_note->u.note.pitch),
-                    pitch_value(next_note_pitch), type);
+                    next_custos(next_note_pitch, next_note_alteration), type);
             glyph->u.notes.first_note = current_note;
             glyph->u.notes.glyph_type = G_TORCULUS_RESUPINUS;
-            gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note,
+            write_signs(f, gtype, glyph, glyph->u.notes.first_note,
                     fuse_to_next_note, status, score);
             break;
         } else {
             shape = gregoriotex_determine_glyph_name(glyph, &type, &gtype);
-            fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%d}{%d}", shape,
-                    pitch_value(glyph->u.notes.first_note->u.note.pitch),
-                    pitch_value(next_note_pitch), type);
-            gregoriotex_write_signs(f, gtype, glyph, glyph->u.notes.first_note,
+            fprintf(f, "\\GreGlyph{\\GreCP%s}{%d}{%s}{%d}",
+                    shape, pitch_value(glyph->u.notes.first_note->u.note.pitch),
+                    next_custos(next_note_pitch, next_note_alteration), type);
+            write_signs(f, gtype, glyph, glyph->u.notes.first_note,
                     fuse_to_next_note, status, score);
             break;
         }
@@ -3027,13 +3169,26 @@
     }
 }
 
+static __inline unsigned int glyph_note_units(const gregorio_glyph *glyph)
+{
+    unsigned int count = 0;
+    const gregorio_note *note;
+    if (glyph->u.notes.glyph_type != G_ALTERATION) {
+        for (note = glyph->u.notes.first_note; note; note = note->next) {
+            ++count;
+        }
+    }
+    return count;
+}
+
 /* here we absolutely need to pass the syllable as an argument, because we
  * will need the next note, that may be contained in the next syllable */
 
-static void write_element(FILE *f, gregorio_syllable *syllable,
+static unsigned int write_element(FILE *f, gregorio_syllable *syllable,
         gregorio_element *element, gregoriotex_status *status,
         const gregorio_score *const score)
 {
+    unsigned int note_unit_count = 0;
     if (element->type == GRE_ELEMENT) {
         gregorio_glyph *glyph;
         for (glyph = element->u.first_glyph; glyph; glyph = glyph->next) {
@@ -3070,6 +3225,7 @@
                 /* at this point glyph->type is GRE_GLYPH */
                 assert(glyph->type == GRE_GLYPH);
                 write_glyph(f, syllable, element, glyph, status, score);
+                note_unit_count += glyph_note_units(glyph);
                 if (glyph->next && glyph->next->type == GRE_GLYPH &&
                         glyph->next->u.notes.glyph_type != G_ALTERATION) {
                     if (is_fused(glyph->next->u.notes.liquescentia)) {
@@ -3083,9 +3239,18 @@
                         }
                     } else if (is_puncta_inclinata(
                                 glyph->next->u.notes.glyph_type)
-                            || glyph->next->u.notes.glyph_type ==
-                            G_PUNCTA_INCLINATA) {
-                        fprintf(f, "\\GreEndOfGlyph{9}%%\n");
+                            || glyph->next->u.notes.glyph_type
+                            == G_PUNCTA_INCLINATA) {
+                        if ((is_puncta_inclinata(glyph->u.notes.glyph_type)
+                                    || glyph->u.notes.glyph_type
+                                    == G_PUNCTA_INCLINATA)
+                                && glyph->next->u.notes.first_note->u.note.pitch
+                                == gregorio_glyph_last_note(glyph)->u.note.pitch) {
+                            /* special case for unison puncta inclinata */
+                            fprintf(f, "\\GreEndOfGlyph{23}%%\n");
+                        } else {
+                            fprintf(f, "\\GreEndOfGlyph{9}%%\n");
+                        }
                     } else if (glyph->u.notes.glyph_type != G_ALTERATION
                             || !glyph->next) {
                         fprintf(f, "\\GreEndOfGlyph{0}%%\n");
@@ -3095,6 +3260,7 @@
             }
         }
     }
+    return note_unit_count;
 }
 
 static void write_fixed_text_styles(FILE *f, gregorio_character *syllable_text,
@@ -3165,11 +3331,6 @@
     }
 }
 
-static __inline bool is_manual_custos(const gregorio_element *const element)
-{
-    return element->type == GRE_CUSTOS && element->u.misc.pitched.force_pitch;
-}
-
 static __inline bool next_is_bar(const gregorio_syllable *syllable,
         const gregorio_element *element)
 {
@@ -3239,10 +3400,14 @@
 
         case GRE_CUSTOS:
             assert(element->u.misc.pitched.force_pitch);
-            fprintf(f, "\\GreFinalCustos{%d}%%\n",
+            fprintf(f, "\\GreFinalCustos{%d}{}%%\n",
                     pitch_value(element->u.misc.pitched.pitch));
             break;
 
+        case GRE_END_OF_LINE:
+            fprintf(f, "\\GreFinalNewLine%%\n");
+            break;
+
         default:
             /* do nothing */
             break;
@@ -3380,7 +3545,6 @@
         char *const euouae_follows, char *const eol_forces_custos,
         unsigned short *const next_euouae_id)
 {
-    static unsigned short euouae_id = 0;
     bool has_intervening_linebreak = false;
 
     *euouae_follows = '\0';
@@ -3400,7 +3564,7 @@
             scan_syllable_for_eol(syllable, eol_forces_custos);
 
             if (syllable->euouae == EUOUAE_BEGINNING) {
-                *next_euouae_id = syllable->euouae_id = ++euouae_id;
+                *next_euouae_id = syllable->euouae_id = ++tex_position_id;
                 *euouae_follows = has_intervening_linebreak? '1' : '0';
             }
         }
@@ -3420,6 +3584,50 @@
     }
 }
 
+static __inline unsigned int count_note_units(const gregorio_element *element)
+{
+    unsigned int count = 0;
+    for (; element; element = element->next) {
+        if (element->type == GRE_ELEMENT) {
+            const gregorio_glyph *glyph;
+            for (glyph = element->u.first_glyph; glyph; glyph = glyph->next) {
+                if (glyph->type == GRE_GLYPH) {
+                    count += glyph_note_units(glyph);
+                }
+            }
+        }
+    }
+    return count;
+}
+
+static __inline void handle_last_of_voice(FILE *const f,
+        const gregorio_syllable *syllable,
+        const gregorio_element *const element,
+        const gregorio_element *const last_of_voice)
+{
+    if (element == last_of_voice) {
+        if (syllable->next_syllable) {
+            /* check for no-element syllables that follow */
+            for (syllable = syllable->next_syllable;
+                    syllable && (!syllable->elements || !*(syllable->elements));
+                    syllable = syllable->next_syllable) {
+                /* just loop */
+            }
+            /* if syllable is NULL here, then all syllables that follow
+             * have no elements */
+        }
+        /* emit GreLastOfScore if we are either on the last syllable (and
+         * thus the loop above is not executed, leaving syllable at the
+         * current syllable) or if a syllable which follows the current
+         * syllable has an element of some sort (and thus the loop above
+         * stopped before running out of syllables); in any case, the check
+         * is that syllable, at this point, is not NULL */
+        if (syllable) {
+            fprintf(f, "\\GreLastOfScore");
+        }
+    }
+}
+
 /*
  * Arguments are relatively obvious. The most obscure is certainly first_of_disc
  * which is 0 all the time, except in the case of a "clef change syllable". In
@@ -3436,6 +3644,7 @@
 static void write_syllable(FILE *f, gregorio_syllable *syllable,
         unsigned char first_of_disc, gregoriotex_status *const status,
         const gregorio_score *const score,
+        const gregorio_element *const *const last_of_voice,
         void (*const write_this_syllable_text)
         (FILE *, const char *, bool, const gregorio_character *, bool))
 {
@@ -3447,6 +3656,7 @@
     char euouae_follows;
     char eol_forces_custos;
     unsigned short next_euouae_id;
+    unsigned int note_unit_count;
 
     gregorio_not_null(syllable, write_syllable, return);
     end_of_word = syllable->position == WORD_END
@@ -3498,10 +3708,10 @@
                  */
                 gregoriotex_print_change_line_clef(f, clef_change_element);
                 fprintf(f, "\\GreDiscretionary{0}{%%\n");
-                write_syllable(f, syllable, 1, status, score,
+                write_syllable(f, syllable, 1, status, score, last_of_voice,
                         write_syllable_text);
                 fprintf(f, "}{%%\n");
-                write_syllable(f, syllable, 2, status, score,
+                write_syllable(f, syllable, 2, status, score, last_of_voice,
                         write_syllable_text);
                 fprintf(f, "}%%\n");
                 write_this_syllable_text(f, NULL, syllable->forced_center,
@@ -3534,7 +3744,7 @@
              * bar syllable */
             syllable_type = "\\GreBarSyllable";
         } else {
-            if (first_of_disc == 1) {
+            if (first_of_disc != 0) {
                 syllable_type = "\\GreBarSyllable";
             } else {
                 syllable_type = "\\GreSyllable";
@@ -3561,7 +3771,7 @@
                 syllable->next_syllable->forced_center?
                 "\\GreGABCNextForceCenters" : "");
         write_text(f, syllable->next_syllable->text);
-        if (end_of_line) {
+        if (end_of_line || first_of_disc == 1) {
             fprintf(f, "\\GreLastOfLine");
         } else if (euouae_follows) {
             fprintf(f, "\\GreLastSyllableBeforeEUOUAE{%hu}{%c}",
@@ -3573,7 +3783,7 @@
                 gregoriotex_syllable_first_type(syllable->next_syllable));
     } else {
         fprintf(f, "{\\GreSetNextSyllable{}{}{}{}{}");
-        if (end_of_line) {
+        if (end_of_line || first_of_disc == 1) {
             fprintf(f, "\\GreLastOfLine");
         }
         fprintf(f, "}{");
@@ -3599,6 +3809,10 @@
     }
     fprintf(f, "}{%%\n");
 
+    fprintf(f, "\\GreSyllableNoteCount{%u}%%\n", syllable->elements?
+            count_note_units(*syllable->elements) : 0);
+
+    note_unit_count = 0;
     if (syllable->elements) {
         for (element = *syllable->elements; element; element = element->next) {
             if (element->nabc_lines && element->nabc) {
@@ -3615,30 +3829,38 @@
             case GRE_SPACE:
                 switch (element->u.misc.unpitched.info.space) {
                 case SP_LARGER_SPACE:
-                    fprintf(f, "\\GreEndOfElement{1}{0}%%\n");
+                    fprintf(f, "\\GreEndOfElement{1}{0}{%u}%%\n",
+                            note_unit_count);
                     break;
                 case SP_GLYPH_SPACE:
-                    fprintf(f, "\\GreEndOfElement{2}{0}%%\n");
+                    fprintf(f, "\\GreEndOfElement{2}{0}{%u}%%\n",
+                            note_unit_count);
                     break;
                 case SP_NEUMATIC_CUT:
-                    fprintf(f, "\\GreEndOfElement{0}{0}%%\n");
+                    fprintf(f, "\\GreEndOfElement{0}{0}{%u}%%\n",
+                            note_unit_count);
                     break;
                 case SP_AD_HOC_SPACE:
-                    fprintf(f, "\\GreAdHocSpaceEndOfElement{%s}{0}%%\n",
-                            element->u.misc.unpitched.info.ad_hoc_space_factor);
+                    fprintf(f, "\\GreAdHocSpaceEndOfElement{%s}{0}{%u}%%\n",
+                            element->u.misc.unpitched.info.ad_hoc_space_factor,
+                            note_unit_count);
                     break;
                 case SP_GLYPH_SPACE_NB:
-                    fprintf(f, "\\GreEndOfElement{2}{1}%%\n");
+                    fprintf(f, "\\GreEndOfElement{2}{1}{%u}%%\n",
+                            note_unit_count);
                     break;
                 case SP_LARGER_SPACE_NB:
-                    fprintf(f, "\\GreEndOfElement{1}{1}%%\n");
+                    fprintf(f, "\\GreEndOfElement{1}{1}{%u}%%\n",
+                            note_unit_count);
                     break;
                 case SP_NEUMATIC_CUT_NB:
-                    fprintf(f, "\\GreEndOfElement{0}{1}%%\n");
+                    fprintf(f, "\\GreEndOfElement{0}{1}{%u}%%\n",
+                            note_unit_count);
                     break;
                 case SP_AD_HOC_SPACE_NB:
-                    fprintf(f, "\\GreAdHocSpaceEndOfElement{%s}{1}%%\n",
-                            element->u.misc.unpitched.info.ad_hoc_space_factor);
+                    fprintf(f, "\\GreAdHocSpaceEndOfElement{%s}{1}{%u}%%\n",
+                            element->u.misc.unpitched.info.ad_hoc_space_factor,
+                            note_unit_count);
                     break;
                 default:
                     /* not reachable unless there's a programming error */
@@ -3680,7 +3902,7 @@
                     fprintf(f, "\\GreChangeClef{%c}{%d}{%c}{%d}{%c}{%d}{%d}%%\n",
                             gregorio_clef_to_char(element->u.misc.clef.clef),
                             element->u.misc.clef.line,
-                            (element->previous && element->previous->type
+                            (!element->previous || element->previous->type
                              == GRE_BAR)? '0' : '1',
                             clef_flat_height(element->u.misc.clef.clef,
                                     element->u.misc.clef.line,
@@ -3696,25 +3918,29 @@
 
             case GRE_CUSTOS:
                 if (first_of_disc != 1) {
+                    signed char next_note_pitch;
+                    gregorio_shape next_note_alteration;
+                    const char *alteration = "";
                     /*
                      * We don't print custos before a bar at the end of a line
                      */
                     /* we also print an unbreakable larger space before the custo */
-                    handle_last_of_score(f, syllable, element);
-                    fprintf(f, "\\GreEndOfElement{1}{1}%%\n\\GreCustos{%d}"
-                            "\\GreNextCustos{%d}%%\n",
-                            pitch_value(element->u.misc.pitched.pitch),
-                            pitch_value(gregorio_determine_next_pitch(syllable,
-                                    element, NULL)));
+                    handle_last_of_voice(f, syllable, element, *last_of_voice);
+                    next_note_pitch = gregorio_determine_next_pitch(syllable,
+                            element, NULL, &next_note_alteration);
+                    if (!element->u.misc.pitched.force_pitch) {
+                        alteration = alteration_name(next_note_alteration);
+                    }
+                    fprintf(f, "\\GreCustos{%d}{%s}%s%%\n",
+                            pitch_value(element->u.misc.pitched.pitch), alteration,
+                            next_custos(next_note_pitch, next_note_alteration));
+                    ++note_unit_count;
                 }
                 break;
 
             case GRE_BAR:
-                write_bar(f, element->u.misc.unpitched.info.bar,
-                        element->u.misc.unpitched.special_sign,
-                        element->next && !is_manual_custos(element->next)
-                        && element->next->type != GRE_END_OF_LINE,
-                        !element->previous && syllable->text, first_of_disc);
+                handle_last_of_voice(f, syllable, element, *last_of_voice);
+                write_bar(f, score, syllable, element, first_of_disc);
                 break;
 
             case GRE_END_OF_LINE:
@@ -3735,14 +3961,16 @@
             default:
                 /* here current_element->type is GRE_ELEMENT */
                 assert(element->type == GRE_ELEMENT);
-                handle_last_of_score(f, syllable, element);
-                write_element(f, syllable, element, status, score);
+                handle_last_of_voice(f, syllable, element, *last_of_voice);
+                note_unit_count += write_element(f, syllable, element, status,
+                        score);
                 if (element->next && (element->next->type == GRE_ELEMENT
                                 || (element->next->next
                                         && element->next->type == GRE_ALT
                                         && element->next->next->type ==
                                         GRE_ELEMENT))) {
-                    fprintf(f, "\\GreEndOfElement{0}{0}%%\n");
+                    fprintf(f, "\\GreEndOfElement{0}{0}{%u}%%\n",
+                            note_unit_count);
                 }
                 break;
             }
@@ -3782,7 +4010,8 @@
 }
 
 static void initialize_score(gregoriotex_status *const status,
-        gregorio_score *score, const bool point_and_click)
+        gregorio_score *score, const bool point_and_click,
+        const gregorio_element **const last_of_voice)
 {
     gregorio_syllable *syllable;
 
@@ -3814,6 +4043,8 @@
             status->abovelinestext = true;
         }
 
+        /* simultaneously compute height extrema and determine the last "real"
+         * element in each voice */
         for (voice = 0; voice < score->number_of_voices; ++voice) {
             gregorio_element *element;
 
@@ -3826,10 +4057,15 @@
                     status->abovelinestext = true;
                     break;
 
+                case GRE_CUSTOS:
+                    last_of_voice[voice] = element;
+                    break;
+
                 case GRE_ELEMENT:
                     for (glyph = element->u.first_glyph; glyph;
                             glyph = glyph->next) {
                         if (glyph->type == GRE_GLYPH) {
+                            last_of_voice[voice] = element;
                             compute_height_extrema(glyph,
                                     glyph->u.notes.first_note,
                                     &(status->top_height),
@@ -3838,6 +4074,10 @@
                     }
                     break;
 
+                case GRE_BAR:
+                    last_of_voice[voice] = element;
+                    break;
+
                 default:
                     /* to eliminate the warning */
                     break;
@@ -3888,6 +4128,50 @@
     }
 }
 
+static int first_note_near_clef(const gregorio_score *const score) {
+    gregorio_clef_info clef = gregorio_default_clef;
+    if (score->first_voice_info) {
+        clef = score->first_voice_info->initial_clef;
+        if (!clef.secondary_line && !clef.flatted && score->first_syllable
+                && score->first_syllable->elements) {
+            const gregorio_element *element = score->first_syllable->elements[0];
+            if (element && element->type == GRE_ELEMENT) {
+                const gregorio_glyph *glyph = element->u.first_glyph;
+                if (glyph && glyph->type == GRE_GLYPH) {
+                    const signed char clef_pitch = LOW_LINE_PITCH
+                        + ((clef.line - 1) * 2);
+                    const gregorio_note *low_note = glyph->u.notes.first_note;
+                    const gregorio_note *high_note = low_note;
+                    switch (glyph->u.notes.glyph_type) {
+                    case G_PODATUS:
+                        /* next note is above the previous */
+                        if (low_note->next) {
+                            high_note = low_note->next;
+                        }
+                        break;
+                    case G_FLEXA:
+                    case G_PORRECTUS:
+                    case G_PORRECTUS_FLEXUS:
+                        /* there is a stem the size of the ambitus */
+                        if (high_note->next) {
+                            low_note = high_note->next;
+                        }
+                        break;
+                    default:
+                        /* to prevent the enum warning */
+                        break;
+                    }
+                    if (high_note->u.note.pitch < clef_pitch - 3
+                            || low_note->u.note.pitch > clef_pitch + 3) {
+                        return 0;
+                    }
+                }
+            }
+        }
+    }
+    return 1;
+}
+
 void gregoriotex_write_score(FILE *const f, gregorio_score *const score,
         const char *const point_and_click_filename)
 {
@@ -3895,8 +4179,11 @@
     gregorio_syllable *current_syllable;
     int annotation_num;
     gregoriotex_status status;
+    const gregorio_element *last_of_voice[MAX_NUMBER_OF_VOICES];
 
-    initialize_score(&status, score, point_and_click_filename != NULL);
+    memset(last_of_voice, 0, sizeof last_of_voice);
+    initialize_score(&status, score, point_and_click_filename != NULL,
+            last_of_voice);
 
     gregorio_assert(f, gregoriotex_write_score, "call with NULL file", return);
 
@@ -3960,10 +4247,10 @@
         fprintf(f, "}%%\n");
     }
 
-    /* DEPRECATED by 4.1 */
+    /* DEPRECATED for removal in 5.0 */
     /* LCOV_EXCL_START */
-    if (score->initial_style != INITIAL_NOT_SPECIFIED) { /* DEPRECATED by 4.1 */
-        fprintf(f, "\\GreSetInitialStyle{%d}%%\n", score->initial_style); /* DEPRECATED by 4.1 */
+    if (score->initial_style != INITIAL_NOT_SPECIFIED) { /* DEPRECATED for removal in 5.0 */
+        fprintf(f, "\\GreSetInitialStyle{%d}%%\n", score->initial_style); /* DEPRECATED for removal in 5.0 */
     }
     /* LCOV_EXCL_STOP */
 
@@ -3975,16 +4262,17 @@
     if (score->first_voice_info) {
         clef = score->first_voice_info->initial_clef;
     }
-    fprintf(f, "\\GreSetInitialClef{%c}{%d}{%d}{%c}{%d}{%d}%%\n",
+    fprintf(f, "\\GreSetInitialClef{%c}{%d}{%d}{%c}{%d}{%d}{%d}%%\n",
             gregorio_clef_to_char(clef.clef), clef.line,
             clef_flat_height(clef.clef, clef.line, clef.flatted),
             gregorio_clef_to_char(clef.secondary_clef), clef.secondary_line,
             clef_flat_height(clef.secondary_clef, clef.secondary_line,
-                    clef.secondary_flatted));
+                    clef.secondary_flatted),
+            first_note_near_clef(score));
     fprintf(f, "}{%%\n"); /* GreScoreOpening#3 */
     current_syllable = score->first_syllable;
     if (current_syllable) {
-        write_syllable(f, current_syllable, 0, &status, score,
+        write_syllable(f, current_syllable, 0, &status, score, last_of_voice,
                 write_first_syllable_text);
         current_syllable = current_syllable->next_syllable;
     } else {
@@ -3992,7 +4280,7 @@
         fprintf(f, "}{}{\\GreSetNoFirstSyllableText}%%\n");
     }
     while (current_syllable) {
-        write_syllable(f, current_syllable, 0, &status, score,
+        write_syllable(f, current_syllable, 0, &status, score, last_of_voice,
                 write_syllable_text);
         current_syllable = current_syllable->next_syllable;
     }

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/gregoriotex/gregoriotex.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This header prototypes GregorioTeX writing data structures and entry points.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/messages.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/messages.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/messages.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file contains functions for logging messages, warnings, and errors.
  *
- * Copyright (C) 2009-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2009-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  * 
@@ -31,6 +31,7 @@
 static FILE *error_out;
 static gregorio_verbosity verbosity_mode = 0;
 static bool debug_messages = false;
+static bool deprecation_is_warning = true;
 static int return_value = 0;
 
 int gregorio_get_return_value(void)
@@ -53,6 +54,11 @@
     debug_messages = debug;
 }
 
+void gregorio_set_deprecation_errors(bool deprecation_errors)
+{
+    deprecation_is_warning = !deprecation_errors;
+}
+
 static const char *verbosity_to_str(const gregorio_verbosity verbosity)
 {
     const char *str;
@@ -132,6 +138,11 @@
     fprintf(error_out, "\n");
 
     switch (verbosity) {
+    case VERBOSITY_DEPRECATION:
+        if (deprecation_is_warning) {
+            break;
+        }
+        /* else fall through */
     case VERBOSITY_ERROR:
     case VERBOSITY_ASSERTION:
         return_value = 1;

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/messages.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/messages.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/messages.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This header prototypes the message logging functions.
  *
- * Copyright (C) 2009-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2009-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *
@@ -54,6 +54,7 @@
         __attribute__ ((__format__ (__printf__, 4, 5)));
 void gregorio_set_verbosity_mode(gregorio_verbosity verbosity);
 void gregorio_set_debug_messages(bool debug);
+void gregorio_set_deprecation_errors(bool deprecation_errors);
 void gregorio_set_error_out(FILE *f);
 int gregorio_get_return_value(void);
 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/plugins.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/plugins.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/plugins.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This header prototypes the "main" entry points for reading and writing data.
  *
- * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md)
  * 
  * This file is part of Gregorio.
  *

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/struct.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/struct.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/struct.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file implements the Gregorio data structures.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *
@@ -53,6 +53,8 @@
 #include "characters.h"
 #include "support.h"
 
+unsigned short tex_position_id = 0;
+
 gregorio_clef_info gregorio_default_clef = {
     /*.line =*/ 3,
     /*.secondary_line =*/ 0,
@@ -430,7 +432,9 @@
     case S_PUNCTUM_CAVUM:
         /* S_PUNCTUM_CAVUM morphs other shapes */
         switch (old_shape) {
-        case S_PUNCTUM_INCLINATUM:
+        case S_PUNCTUM_INCLINATUM_UNDETERMINED:
+        case S_PUNCTUM_INCLINATUM_ASCENDENS:
+        case S_PUNCTUM_INCLINATUM_DESCENDENS:
             note->u.note.shape = S_PUNCTUM_CAVUM_INCLINATUM;
             fix_punctum_cavum_inclinatum_liquescentia(note);
             break;
@@ -1260,6 +1264,11 @@
     score->staff_lines = staff_lines;
     score->highest_pitch = LOWEST_PITCH + 4 + (2 * staff_lines);
     score->high_ledger_line_pitch = score->highest_pitch - 1;
+    score->virgula_far_pitch = score->highest_pitch - 6;
+
+    gregorio_assert(score->highest_pitch <= MAX_PITCH,
+            gregorio_set_score_staff_lines, "highest pitch exceeds MAX_PITCH",
+            return);
 }
 
 void gregorio_add_score_header(gregorio_score *score, char *name, char *value)
@@ -1317,11 +1326,52 @@
     }
 }
 
-static signed char gregorio_syllable_first_note(gregorio_syllable *syllable)
+/* shape is an output parameter */
+static __inline signed char next_pitch_from_glyph(const gregorio_glyph *glyph,
+        gregorio_shape *const alterations, gregorio_shape *const shape)
 {
+    while (glyph) {
+        if (glyph->type == GRE_GLYPH) {
+            if (glyph->u.notes.glyph_type == G_ALTERATION) {
+                const gregorio_note *note;
+                for (note = glyph->u.notes.first_note; note;
+                        note = note->next) {
+                    switch (note->u.note.shape) {
+                    case S_FLAT:
+                    case S_SHARP:
+                    case S_NATURAL:
+                        if (note->u.note.pitch >= LOWEST_PITCH &&
+                                note->u.note.pitch <= MAX_PITCH) {
+                            alterations[note->u.note.pitch] =
+                                    note->u.note.shape;
+                        }
+                        break;
+                    default:
+                        break;
+                    }
+                }
+            } else if (glyph->u.notes.first_note) {
+                assert(glyph->u.notes.first_note->type == GRE_NOTE);
+                if (shape) {
+                    *shape = alterations[
+                            glyph->u.notes.first_note->u.note.pitch];
+                }
+                return glyph->u.notes.first_note->u.note.pitch;
+            }
+        }
+        glyph = glyph->next;
+    }
+    return 0;
+}
+
+/* shape is an output parameter */
+static signed char syllable_first_note(const gregorio_syllable *syllable,
+        gregorio_shape *const alterations, gregorio_shape *const shape)
+{
     gregorio_element *element;
     gregorio_glyph *glyph;
-    gregorio_not_null(syllable, gregorio_syllable_first_note, return 0);
+    signed char pitch;
+    gregorio_not_null(syllable, syllable_first_note, return 0);
     element = syllable->elements[0];
     while (element) {
         if (element->type == GRE_CUSTOS) {
@@ -1329,14 +1379,9 @@
         }
         if (element->type == GRE_ELEMENT && element->u.first_glyph) {
             glyph = element->u.first_glyph;
-            while (glyph) {
-                if (glyph->type == GRE_GLYPH
-                        && glyph->u.notes.glyph_type != G_ALTERATION
-                        && glyph->u.notes.first_note) {
-                    assert(glyph->u.notes.first_note->type == GRE_NOTE);
-                    return glyph->u.notes.first_note->u.note.pitch;
-                }
-                glyph = glyph->next;
+            pitch = next_pitch_from_glyph(glyph, alterations, shape);
+            if (pitch) {
+                return pitch;
             }
         }
         element = element->next;
@@ -1344,10 +1389,19 @@
     return 0;
 }
 
-signed char gregorio_determine_next_pitch(gregorio_syllable *syllable,
-        gregorio_element *element, gregorio_glyph *glyph)
+/* shape is an output parameter */
+signed char gregorio_determine_next_pitch(const gregorio_syllable *syllable,
+        const gregorio_element *element, const gregorio_glyph *glyph,
+        gregorio_shape *const shape)
 {
-    signed char temp;
+    signed char pitch;
+    gregorio_shape alterations[MAX_PITCH + 1];
+
+    memset(alterations, 0, sizeof alterations);
+
+    if (shape) {
+        *shape = S_UNDETERMINED;
+    }
     gregorio_not_null(element, gregorio_determine_next_pitch,
             return DUMMY_PITCH);
     gregorio_not_null(syllable, gregorio_determine_next_pitch,
@@ -1355,14 +1409,9 @@
     /* we first explore the next glyphs to find a note, if there is one */
     if (glyph) {
         glyph = glyph->next;
-        while (glyph) {
-            if (glyph->type == GRE_GLYPH
-                    && glyph->u.notes.glyph_type != G_ALTERATION
-                    && glyph->u.notes.first_note) {
-                assert(glyph->u.notes.first_note->type == GRE_NOTE);
-                return glyph->u.notes.first_note->u.note.pitch;
-            }
-            glyph = glyph->next;
+        pitch = next_pitch_from_glyph(glyph, alterations, shape);
+        if (pitch) {
+            return pitch;
         }
     }
     /* then we do the same with the elements */
@@ -1373,14 +1422,9 @@
         }
         if (element->type == GRE_ELEMENT && element->u.first_glyph) {
             glyph = element->u.first_glyph;
-            while (glyph) {
-                if (glyph->type == GRE_GLYPH
-                        && glyph->u.notes.glyph_type != G_ALTERATION
-                        && glyph->u.notes.first_note) {
-                    assert(glyph->u.notes.first_note->type == GRE_NOTE);
-                    return glyph->u.notes.first_note->u.note.pitch;
-                }
-                glyph = glyph->next;
+            pitch = next_pitch_from_glyph(glyph, alterations, shape);
+            if (pitch) {
+                return pitch;
             }
         } /* I think this is optimized out; LCOV_EXCL_LINE */
         element = element->next;
@@ -1391,14 +1435,17 @@
     while (syllable) {
         /* we call another function that will return the pitch of the first
          * note if syllable has a note, and 0 else */
-        temp = gregorio_syllable_first_note(syllable);
-        if (temp) {
-            return temp;
+        pitch = syllable_first_note(syllable, alterations, shape);
+        if (pitch) {
+            return pitch;
         }
         syllable = syllable->next_syllable;
     }
     /* here it means that there is no next note, so we return a stupid value,
      * but it won' t be used */
+    if (shape) {
+        *shape = S_UNDETERMINED;
+    }
     return DUMMY_PITCH;
 }
 

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/struct.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/struct.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/struct.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This header defines the Gregorio data structures and functions.
  *
- * Copyright (C) 2006-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2006-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *
@@ -98,7 +98,8 @@
     A(S_UNDETERMINED, 0) \
     E(S_PUNCTUM) \
     E(S_PUNCTUM_END_OF_GLYPH) \
-    E(S_PUNCTUM_INCLINATUM) \
+    E(S_PUNCTUM_INCLINATUM_ASCENDENS) \
+    E(S_PUNCTUM_INCLINATUM_DESCENDENS) \
     E(S_PUNCTUM_INCLINATUM_DEMINUTUS) \
     E(S_PUNCTUM_INCLINATUM_AUCTUS) \
     E(S_VIRGA) \
@@ -134,6 +135,7 @@
     E(S_ORISCUS_SCAPUS_UNDETERMINED) \
     E(S_ORISCUS_CAVUM_UNDETERMINED) \
     E(S_QUADRATUM) \
+    E(S_PUNCTUM_INCLINATUM_UNDETERMINED) \
     /* those shapes are for now used only in gregoriotex */ \
     E(S_QUILISMA_QUADRATUM) \
     E(S_PUNCTUM_AUCTUS_ASCENDENS) \
@@ -283,7 +285,6 @@
     E(G_SALICUS_FLEXUS) \
     E(G_VIRGA_STRATA) \
     E(G_TORCULUS_LIQUESCENS) \
-    E(G_PES_QUILISMA) \
     /* additional glyph types, necessary for determination */ \
     E(G_PORRECTUS_NO_BAR) \
     E(G_PORRECTUS_FLEXUS_NO_BAR) \
@@ -403,7 +404,7 @@
     struct {
         /* The pitch of the glyph. */
         signed char pitch;
-        /* boolean indicating a clef with a B-flat */
+        /* boolean indicating whether the pitch is forced */
         bool force_pitch:1;
     } pitched;
     /* clef is used for GRE_CLEF */
@@ -692,7 +693,7 @@
     char *annotation[MAX_ANNOTATIONS];
     /* field giving informations on the initial (no initial, normal initial
      * or two lines initial) */
-    signed char initial_style; /* DEPRECATED */
+    signed char initial_style; /* DEPRECATED for removal in 5.0 */
     size_t nabc_lines;
     char *user_notes;
     /* the determination method (maximal ambitus, etc.) */
@@ -705,6 +706,7 @@
     unsigned char staff_lines;
     signed char highest_pitch;
     signed char high_ledger_line_pitch;
+    signed char virgula_far_pitch;
     bool legacy_oriscus_orientation;
 } gregorio_score;
 
@@ -739,11 +741,12 @@
 #define F_KEY 'f'
 #define NO_KEY -5
 
+extern unsigned short tex_position_id;
 extern gregorio_clef_info gregorio_default_clef;
 
 #define MONOPHONY 0
 
-/* the different initial styles - DEPRECATED by 4.1 */
+/* the different initial styles - DEPRECATED for removal in 5.0 */
 #define INITIAL_NOT_SPECIFIED -1
 
 #define USELESS_VALUE 0
@@ -779,6 +782,8 @@
 #define LOWEST_PITCH 3
 #define DUMMY_PITCH (LOWEST_PITCH + 6)
 #define LOW_LEDGER_LINE_PITCH (LOWEST_PITCH + 1)
+#define LOW_LINE_PITCH (LOWEST_PITCH + 3)
+#define MAX_PITCH (LOWEST_PITCH + 4 + (2 * 5))
 
 #define NO_PITCH -128
 
@@ -880,8 +885,9 @@
 void gregorio_end_style(gregorio_character **current_character,
         grestyle_style style);
 gregorio_character *gregorio_clone_characters(const gregorio_character *source);
-signed char gregorio_determine_next_pitch(gregorio_syllable *syllable,
-        gregorio_element *element, gregorio_glyph *glyph);
+signed char gregorio_determine_next_pitch(const gregorio_syllable *syllable,
+        const gregorio_element *element, const gregorio_glyph *glyph,
+        gregorio_shape *next_pitch_alteration);
 const char *gregorio_unknown(int value);
 gregorio_element *gregorio_get_clef_change(gregorio_syllable *syllable);
 unsigned short gregorio_add_hepisema_adjustment(

Added: trunk/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h	                        (rev 0)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -0,0 +1,101 @@
+/*
+ * Gregorio is a program that translates gabc files to GregorioTeX
+ * This header defines the Gregorio data structures and functions.
+ *
+ * Copyright (C) 2016 The Gregorio Project (see CONTRIBUTORS.md)
+ *
+ * This file is part of Gregorio.
+ *
+ * Gregorio 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gregorio 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 Gregorio.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * @file
+ * The file starts by the definition of all the structures used in
+ * gregorio. As it is certainly the most important file for
+ * understanding, read it carefully.
+ */
+
+#ifndef STRUCT_ITER_H
+#define STRUCT_ITER_H
+
+#include "struct.h"
+
+typedef struct {
+    gregorio_syllable *syllable;
+    gregorio_element *element;
+    gregorio_glyph *glyph;
+    gregorio_note *note;
+} gregorio_note_iter_position;
+
+static __inline void gregorio_from_note_to_note(
+        const gregorio_note_iter_position *const start,
+        const gregorio_note_iter_position *const end,
+        void (*const visit)(const gregorio_note_iter_position *, void *),
+        void *data)
+{
+    gregorio_note_iter_position p = *start;
+
+    while (p.syllable) {
+        if (!p.element) {
+            p.element = p.syllable->elements[0];
+        }
+        while (p.element) {
+            if (p.element->type == GRE_ELEMENT) {
+                if (!p.glyph) {
+                    p.glyph = p.element->u.first_glyph;
+                }
+                while (p.glyph) {
+                    if (p.glyph->type == GRE_GLYPH) {
+                        if (!p.note) {
+                            p.note = p.glyph->u.notes.first_note;
+                        }
+                        while (p.note) {
+                            if (p.note->type == GRE_NOTE) {
+                                visit(&p, data);
+                            }
+
+                            if (end && p.note == end->note) {
+                                return;
+                            }
+
+                            p.note = p.note->next;
+                        } /* note */
+                    }
+                    p.glyph = p.glyph->next;
+                } /* glyph */
+            }
+            p.element = p.element->next;
+        } /* element */
+        p.syllable = p.syllable->next_syllable;
+    } /* syllable */
+}
+
+static __inline void gregorio_for_each_note(const gregorio_score *score,
+        void (*const visit)(const gregorio_note_iter_position *, void *),
+        void *data)
+{
+    gregorio_note_iter_position p = {
+        /* .syllable = */ NULL,
+        /* .element = */ NULL,
+        /* .glyph = */ NULL,
+        /* .note = */ NULL
+    };
+
+    p.syllable = score->first_syllable;
+
+    gregorio_from_note_to_note(&p, NULL, visit, data);
+}
+
+#endif


Property changes on: trunk/Build/source/texk/gregorio/gregorio-src/src/struct_iter.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/unicode.c
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/unicode.c	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/unicode.c	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This file contains functions providing UTF-8 support.
  *
- * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *

Modified: trunk/Build/source/texk/gregorio/gregorio-src/src/unicode.h
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/src/unicode.h	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/src/unicode.h	2016-09-25 06:05:30 UTC (rev 42143)
@@ -2,7 +2,7 @@
  * Gregorio is a program that translates gabc files to GregorioTeX
  * This header prototypes the UTF-8 support functions.
  *
- * Copyright (C) 2008-2015 The Gregorio Project (see CONTRIBUTORS.md)
+ * Copyright (C) 2008-2016 The Gregorio Project (see CONTRIBUTORS.md)
  *
  * This file is part of Gregorio.
  *

Modified: trunk/Build/source/texk/gregorio/gregorio-src/windows/gregorio-resources.rc
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio-src/windows/gregorio-resources.rc	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio-src/windows/gregorio-resources.rc	2016-09-25 06:05:30 UTC (rev 42143)
@@ -1,7 +1,7 @@
 IDI_ICON1 ICON DISCARDABLE "gregorio.ico"
 1 VERSIONINFO
-FILEVERSION     4,1,4,30
-PRODUCTVERSION  4,1,4,30
+FILEVERSION     4,2,0,30
+PRODUCTVERSION  4,2,0,30
 BEGIN
   BLOCK "StringFileInfo"
   BEGIN
@@ -9,12 +9,12 @@
     BEGIN
       VALUE "CompanyName", "Gregorio project"
       VALUE "FileDescription", "Gregorio"
-      VALUE "FileVersion", "4.1.4"
+      VALUE "FileVersion", "4.2.0"
       VALUE "InternalName", "gregorio"
       VALUE "LegalCopyright", "See COPYING in the installation directory."
       VALUE "OriginalFilename", "gregorio.exe"
       VALUE "ProductName", "Gregorio"
-      VALUE "ProductVersion", "4.1.4"
+      VALUE "ProductVersion", "4.2.0"
     END
   END
 

Modified: trunk/Build/source/texk/gregorio/gregorio.test
===================================================================
--- trunk/Build/source/texk/gregorio/gregorio.test	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/gregorio.test	2016-09-25 06:05:30 UTC (rev 42143)
@@ -9,25 +9,27 @@
 
 DOCSRC=$srcdir/$GREGORIO_TREE/doc
 
+gregorio=gregorio-$FILENAME_VERSION
+
 failed=
 
 echo "*** gregorio --version" \
-	&& ./gregorio --version \
+	&& ./$gregorio --version \
 	&& echo && echo "gregorio-version tests OK" && echo \
 	|| failed="$failed gregorio-version"
 
 echo "*** gregorio --help" \
-	&& ./gregorio --help \
+	&& ./$gregorio --help \
 	&& echo && echo "gregorio-help tests OK" && echo \
 	|| failed="$failed gregorio-help"
 
 echo "*** gregorio -o factus.gtex factus.gabc" \
-	&& ./gregorio -o factus.gtex $DOCSRC/factus.gabc \
+	&& ./$gregorio -o factus.gtex $DOCSRC/factus.gabc \
 	&& echo && echo "gregorio-factus tests OK" && echo \
 	|| failed="$failed gregorio-factus"
 
 echo "*** gregorio -o veni.gtex veni.gabc" \
-	&& ./gregorio -o veni.gtex $DOCSRC/veni.gabc \
+	&& ./$gregorio -o veni.gtex $DOCSRC/veni.gabc \
 	&& echo && echo "gregorio-veni tests OK" && echo \
 	|| failed="$failed gregorio-veni"
 
@@ -35,4 +37,3 @@
 echo
 echo "failed tests:$failed"
 exit 1
-

Modified: trunk/Build/source/texk/gregorio/version.ac
===================================================================
--- trunk/Build/source/texk/gregorio/version.ac	2016-09-25 05:06:05 UTC (rev 42142)
+++ trunk/Build/source/texk/gregorio/version.ac	2016-09-25 06:05:30 UTC (rev 42143)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current gregorio version
-m4_define([gregorio_version], [4.1.4])
+m4_define([gregorio_version], [4.2.0])



More information about the tex-live-commits mailing list